143 votes

Méthode pythonique pour imprimer les éléments d'une liste

J'aimerais savoir s'il existe une meilleure façon d'imprimer tous les objets d'une liste Python que celle-ci :

myList = [Person("Foo"), Person("Bar")]
print("\n".join(map(str, myList)))
Foo
Bar

J'ai lu que cette façon n'est pas vraiment bonne :

myList = [Person("Foo"), Person("Bar")]
for p in myList:
    print(p)

N'y a-t-il pas quelque chose comme :

print(p) for p in myList

Si non, ma question est... pourquoi ? Si l'on peut faire ce genre de choses avec des listes complètes, pourquoi pas une simple déclaration en dehors d'une liste ?

-1voto

Aethalides Points 159

En supposant que vous êtes d'accord pour que votre liste soit imprimée [1,2,3], il existe une méthode simple dans Python3 :

mylist=[1,2,3,'lorem','ipsum','dolor','sit','amet']

print(f"There are {len(mylist):d} items in this lorem list: {str(mylist):s}")

L'exécution de cette opération produit le résultat suivant :

Il y a 8 éléments dans cette liste lorem : [1, 2, 3, 'lorem', 'ipsum', 'dolor', 'sit', 'amet']

-1voto

Gaurav Singhal Points 393

La question de l'OP est : Est-ce que quelque chose comme ce qui suit existe, si non, pourquoi ?

print(p) for p in myList # doesn't work, OP's intuition

La réponse est qu'il existe qui est :

[p for p in myList] #works perfectly

En gros, utilisez [] pour la compréhension des listes et se débarrasser de print pour éviter l'impression None . Pour savoir pourquoi print imprime None voir ce

-1voto

Cody peltz Points 11

Vous pouvez également utiliser la fonction len() et identifier la longueur de la liste pour imprimer les éléments comme le montre l'exemple ci-dessous :

sample_list = ['Python', 'is', 'Easy']

for i in range(0, len(sample_list)):

      print(sample_list[i])

Référence : https://favtutor.com/blogs/print-list-python

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X