将列表从for循环返回到另一个列表

时间:2013-07-21 09:10:26

标签: python list for-loop append extend

大家好我有一个在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]]

这可能吗?我这样做错了还是需要使用extend呢?

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

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)

2 个答案:

答案 0 :(得分: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]用于演示目的。您可以在那里添加任何列表。

答案 1 :(得分:0)

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

我有点想要追加到for循环中的新列表。因此,每次循环运行时,在每个列表中计算和生成的值都被添加到循环中,但是由于列表没有放在列表之外,所以它被覆盖。因此,要从for循环中的列表返回一个列表,您只需将新列表放在前面并附加到该列表。

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

相关问题