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

ShinyMemes Points 44

Pour afficher chaque contenu, j'utilise :

mylist = ['foo', 'bar']
indexval = 0
for i in range(len(mylist)):     
    print(mylist[indexval])
    indexval += 1

Exemple d'utilisation dans une fonction :

def showAll(listname, startat):
   indexval = startat
   try:
      for i in range(len(mylist)):
         print(mylist[indexval])
         indexval = indexval + 1
   except IndexError:
      print('That index value you gave is out of range.')

J'espère avoir aidé.

0voto

Rongzhao Zhang Points 11

Je pense que c'est le plus pratique si vous voulez juste voir le contenu de la liste :

myList = ['foo', 'bar']
print('myList is %s' % str(myList))

Simple, facile à lire et peut être utilisé avec la chaîne de format.

0voto

Nate Baker Points 11

J'ai récemment créé un générateur de mots de passe et bien que je sois TRÈS NOUVEAU en python, j'ai conçu ceci comme un moyen d'afficher tous les éléments d'une liste (avec de petites modifications pour répondre à vos besoins...

    x = 0
    up = 0
    passwordText = ""
    password = []
    userInput = int(input("Enter how many characters you want your password to be: "))
    print("\n\n\n") # spacing

    while x <= (userInput - 1): #loops as many times as the user inputs above
            password.extend([choice(groups.characters)]) #adds random character from groups file that has all lower/uppercase letters and all numbers
            x = x+1 #adds 1 to x w/o using x ++1 as I get many errors w/ that
            passwordText = passwordText + password[up]
            up = up+1 # same as x increase

    print(passwordText)

Comme je l'ai dit, je suis TRÈS novice en Python et je suis sûr que c'est beaucoup trop compliqué pour un expert, mais je suis juste ici pour un autre exemple.

0voto

Arpan Saini Points 383

Pour imprimer chaque élément d'une liste donnée en utilisant une seule ligne de code

 for i in result: print(i)

0voto

Adrian Points 23

Vous pouvez essayer de faire ceci : cela l'imprimera également comme une chaîne de caractères

print(''.join([p for p in myList]))

ou si vous voulez qu'il imprime un saut de ligne à chaque fois qu'il imprime quelque chose

print(''.join([p+'\n' for p in myList]))

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