从for循环返回一个列表给另一个列表

2024-10-04 11:28:48 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我有一个在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)

Tags: namein列表forifeachdlprint
2条回答

我想你应该这样做:

>>> 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]作为演示。你可以在那里添加任何列表。你知道吗

正如Rohit Jain所建议的,在for循环外添加一个newlist并附加。你知道吗

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

答案现在在我的代码中更新了,现在可以用了。你知道吗

相关问题 更多 >