Python >> Tutoriel Python >  >> Python

Comment imprimer un tuple sans parenthèses en Python ?

Formulation du problème

Soit un tuple d'éléments. Si vous imprimez le tuple sur le shell en utilisant print((1, 2, 3)) , la sortie est entre parenthèses comme suit :(1, 2, 3) . Mais vous voulez la liste sans crochets comme ceci :1, 2, 3 .

print((1, 2, 3))
# Output: (1, 2, 3)
# Desired: 1, 2, 3

Comment imprimer le tuple sans mettre de parenthèses ?

Méthode 1 :Déballage

L'opérateur astérisque * est utilisé pour décompresser un itérable dans la liste d'arguments d'une fonction donnée. Vous pouvez décompresser tous les éléments de tuple dans le print() fonction pour imprimer chacun d'eux individuellement. Par défaut, tous les arguments d'impression sont séparés par un espace vide. Par exemple, l'expression print(*my_tuple) imprimera les éléments en my_tuple , séparés par des espaces vides, sans les parenthèses fermantes !

my_tuple = (1, 2, 3)
print(*my_tuple)
# Output: 1 2 3

Pour maîtriser les bases du déballage, n'hésitez pas à regarder cette vidéo sur l'opérateur astérisque :

Méthode 2 :Déballage avec séparateur

Pour imprimer un tuple séparé par des virgules sans enfermer de parenthèses, la manière la plus Pythonic est de décompresser toutes les valeurs de tuple dans le print() fonction et utilisez le sep=', ' argument pour séparer les éléments du tuple par une virgule et un espace. Plus précisément, l'expression print(*my_tuple, sep=', ') imprimera les éléments de tuple sans parenthèses et avec une virgule entre les éléments de tuple suivants.

my_tuple = (1, 2, 3)
print(*my_tuple, sep=', ')
# Output: 1, 2, 3

Vous pouvez en savoir plus sur les tenants et les aboutissants du print() intégré fonction dans la vidéo suivante :

Méthode 3 :découpage de la représentation de chaîne

Le découpage est un moyen concis d'accéder à une sous-séquence à partir d'une séquence d'origine. Vous pouvez utiliser le découpage en tranches sur la représentation sous forme de chaîne d'un tuple pour accéder à tous les caractères sauf le premier et le dernier, qui sont les parenthèses ouvrantes et fermantes. Par exemple, l'expression print(str((1, 2, 3))[1:-1]) imprime le tuple sous la forme "1, 2, 3" sans mettre de parenthèses.

my_tuple = (1, 2, 3)
print(str(my_tuple)[1:-1])
# Output: 1, 2, 3

N'hésitez pas à plonger dans le slicing next pour booster vos compétences en codage :

Méthode 4 :Joindre une chaîne avec une expression de générateur

Vous pouvez imprimer un tuple sans parenthèses en combinant le string.join() méthode sur la chaîne de séparation ', ' avec une expression de générateur pour convertir chaque élément de tuple en une chaîne en utilisant le str() fonction intégrée. Plus précisément, l'expression print(', '.join(str(x) for x in my_tuple)) imprime my_tuple au shell sans mettre de parenthèses.

my_tuple = (1, 2, 3)
print(', '.join(str(x) for x in my_tuple))
# Output: 1, 2, 3

Vous pouvez modifier la chaîne de séparation sur laquelle vous vous joignez pour personnaliser l'apparence du tuple :

my_tuple = (1, 2, 3)
print('-'.join(str(x) for x in my_tuple))
# Output: 1-2-3
  • Le string.join(iterable) concatène les éléments dans l'itérable donné.
  • Le str(object) fonction intégrée convertit un objet donné en sa représentation sous forme de chaîne.
  • Les expressions génératrices ou les compréhensions de liste sont des moyens concis d'une seule ligne pour créer un nouvel itérable basé sur la réutilisation d'éléments d'un autre itérable.

Vous pouvez approfondir les générateurs dans la vidéo suivante :