Список списков через функцию в Python - PullRequest
0 голосов
/ 22 октября 2018

Я пытаюсь получить список списков с помощью этой функции в python, когда я запускаю его, я получаю только последний список L. Как я могу редактировать свой код, чтобы каждая итерация сохранялась в общем списке?Заранее спасибо

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)

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Вот подход ООП.Помогает избавиться от повторных добавлений для каждого атрибута:

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)
0 голосов
/ 22 октября 2018

Вы добавляете данные вне цикла, что означает, что вы каждый раз сбрасываете список внутри цикла while с помощью L=[].

. Вам также не нужны дополнительная функция add_data() ипросто используйте встроенный метод .append, чтобы добавить свой список L в основной список FB.

Вы можете упростить свой код следующим образом:

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...