2 votes

Liste de listes par fonction en python

J'essaie d'obtenir une liste de listes par le biais de cette fonction en python, lorsque je l'exécute je ne récupère que la dernière liste L. Comment puis-je modifier mon code pour que chaque itération soit sauvegardée dans une liste commune ? Merci d'avance

FB = []
while True:
    given_name = input("Hva er fornavnet ditt? ")
    if given_name == 'done':
        break
    surname = input("Hva er etternavnet ditt? ")
    age = int(input("Hvor gammel er du? "))
    gender = input("Hvilket kjønn har du? ")
    def add_data():
        L = []
        L.append(given_name)
        L.append(surname)
        L.append(age)
        L.append(gender)
        return L
    add_data()
FB.append(add_data())
print(FB)

2voto

nillyb Points 36

Vous ajoutez les données en dehors de la boucle, ce qui signifie que vous réinitialisez la liste à chaque fois à l'intérieur de la boucle while avec L=[] .

Vous n'avez pas non plus besoin d'une add_data() et utiliser simplement la fonction intégrée .append méthode pour ajouter votre liste L au principal FB liste.

Vous pouvez simplifier votre code comme suit :

FB = []
while True:
    given_name = input("Hva er fornavnet ditt? ")
    if given_name == 'done':
        break
    surname = input("Hva er etternavnet ditt? ")
    age = int(input("Hvor gammel er du? "))
    gender = input("Hvilket kjønn har du? ")

    L = []
    L.append(given_name)
    L.append(surname)
    L.append(age)
    L.append(gender)

    FB.append(L)

print(FB)

0voto

LeKhan9 Points 1100

Voici une approche OOP. Elle permet de se débarrasser des ajouts répétés pour chaque attribut :

class Person():
    def __init__(self, name, surname, age, gender):
        self.name = name
        self.surname = surname
        self.age = age
        self.gender = gender

    def get_list_description(self):
        return [self.name, self.surname, self.age, self.gender]

FB = []
while True:
    given_name = raw_input("Hva er fornavnet ditt? ")
    if given_name == 'done':
        break
    surname = raw_input("Hva er etternavnet ditt? ")
    age = int(raw_input("Hvor gammel er du? "))
    gender = raw_input("Hvilket kjonn har du? ")

    p = Person(given_name, surname, age, gender)
    FB.append(p.get_list_description())

print(FB)

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