-1

こんにちは、for ループの最後に作成されるリストがあります。最後の行は

newlist.append(variable)

ループを実行すると値が返されますが、次のループで上書きされます。したがって、私がやりたいことは、newlist を newlist2 に返すことです。これにより、ループを反復処理するときに、すべてのリストを newlist2 に取得して、すべての値が返されるようになります。

たとえば、最初のループの最後にあるリストは次のとおりです。

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

それを追加したい

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

その後、2回目に取得します

 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)
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 ループの外側に newlist を追加して追加します。

私が最初に持っていたのは、for ループ内で newlist に追加しようとしたことです。そのため、ループが実行されるたびに、各リストで計算および生成された値がループに追加されましたが、リストがリストの外に配置されていなかったため、値が上書きされました。そのため、 for ループ内のリストからリストを返すには、単純に newlist を先頭に置き、それに追加します。

私のコードで答えが更新され、現在動作しています。

于 2013-07-21T09:29:29.883 に答える