-1

大家好,我有一个在 for 循环结束时创建的列表。最后一行是

newlist.append(variable)

我运行循环并返回一个值,但它在下一个循环中被覆盖。因此,我想要做的是将 newlist 返回到 newlist2 以便当我遍历循环时,我可以将所有列表放入 newlist2 中,以便返回所有值。

例如,在第一个循环结束时,列表是

newlist = ['name', 20, 50, 70] 

我想将其附加到

newlist2 = [['name', 20, 50, 70]]

然后第二次通过我得到

 newlist = ['name', 50, 70, 90] 

我想将它附加到 newlist2 这样

newlist2 =     [['name', 20, 50, 70], ['name', 50, 70, 90]]

这可能吗??我做错了还是需要使用扩展来代替?

编辑:这是已经在帮助下构建的代码。

newlist=[]
for each in StationList:
    if calculateDistance(Eastingbase, Northingbase, each[1], each[2])< radius: 
        Relevantfilename = each[0]
        print Relevantfilename
        with open(Relevantfilename, 'rU') as input: 
            dL= list(csv.reader(input))
            total2 = sum(int(i[2]) for i in dL if '2011' in i)
            print total2, "is average for", each[0]
            try:
                average = total2 / float(len([int(i[2]) for i in dL if '2011' in i]))
                print average,"is average for", each[0]
            except ZeroDivisionError: 
                print 0
            each.append(average)  
        print each
        newlist.append(each)
4

2 回答 2

1

我想你想做这样的事情:

>>> def list_of_list():
...     all_lists = []
...     for _ in range(3):
...         all_lists.append([1, 2])
...     return all_lists
... 
>>>
>>> list_of_list()
[[1, 2], [1, 2], [1, 2]]

我只是[1, 2]为了演示目的而每次都附加。您可以在那里添加任何列表。

于 2013-07-21T09:15:26.700 回答
0

正如 Rohit Jain 建议的那样,在 for 循环之外添加一个新列表并追加。

我最初的尝试是在 for 循环中附加到一个新列表。因此,每次运行循环时,都会在每个列表中计算和生成的值并添加到循环中,但是由于列表未放置在列表之外,因此会被覆盖。因此,要从 for 循环中的列表返回列表,您只需在前面放置一个新列表并附加到该列表。

答案现在在我的代码中更新,现在可以使用。

于 2013-07-21T09:29:29.883 回答