Python >> Tutoriel Python >  >> Python

Comment imprimer un ensemble sans crochets en Python ?

Formulation du problème

Soit un ensemble d'éléments. Si vous imprimez la liste sur le shell en utilisant print({1, 2, 3}) , la sortie est entourée d'accolades (accolades) comme suit :{1, 2, 3} . Mais vous voulez l'ensemble sans crochets comme ceci :1, 2, 3 .

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

Comment imprimer l'ensemble sans insérer de crochets ?

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 définis 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_set) imprimera les éléments en my_set , séparés par des espaces vides, sans les crochets englobants !

my_set = {1, 2, 3}
print(*my_set)
# 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 ensemble séparé par des virgules sans accolades, la manière la plus Pythonic est de décompresser toutes les valeurs définies dans le print() fonction et utilisez le sep=', ' argument pour séparer les éléments de l'ensemble par une virgule et un espace. Plus précisément, l'expression print(*my_set, sep=', ') imprimera les éléments de l'ensemble sans crochets et avec une virgule entre les éléments de l'ensemble suivants.

my_set = {1, 2, 3}
print(*my_set, 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 ensemble pour accéder à tous les caractères sauf le premier et le dernier, qui sont les accolades ou les accolades , personnages. Par exemple, l'expression print(str({1, 2, 3})[1:-1]) imprime la liste sous la forme "1, 2, 3" sans mettre de crochets.

my_set = {1, 2, 3}
print(str(my_set)[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 ensemble 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 d'ensemble 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_set)) imprime my_set au shell sans insérer de crochets.

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

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

my_set = {1, 2, 3}
print('-'.join(str(x) for x in my_set))
# 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 :