【问题标题】:List of lists through function in python通过python中的函数列表列表
【发布时间】:2019-03-26 19:51:44
【问题描述】:

我试图通过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)

【问题讨论】:

  • 你不需要在每个循环中重新定义你的函数。那应该在一段时间之外。此外,在 add_data() 开始时,您会删除旧的L,但在循环结束之前不要将 l 添加到 FB。

标签: python list function


【解决方案1】:

您将数据附加到循环之外,这意味着您每次在 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)

【讨论】:

    【解决方案2】:

    这是一种 OOP 方法。帮助摆脱每个属性的重复附加:

    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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-09
      • 1970-01-01
      • 1970-01-01
      • 2021-02-18
      • 1970-01-01
      • 1970-01-01
      • 2013-12-27
      • 1970-01-01
      相关资源
      最近更新 更多