0

次のようなリストがあるとします

mylist = [[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]

要素ごとに追加したい場合は、ロジックを次のように使用できます。

[x+y for x,y in zip(mylist[0],mylist[1],mylist[2],mylist[3],mylist[4],mylist[6]]

列ごとの要素の合計が得られます。しかし、問題は、mylist の各インデックスを zip 関数内に記述するのは、mylist がたまたま 1000 個のリストのリストであり、要素ごとの操作を行う必要がある場合、やや厄介で曖昧です。

zip 関数内にループを入れてみましたが、うまくいきません。それで、それについて何か考えはありますか??

次のように動作するはずです

zip(for k in mylist) # or something else

ありがとう

4

2 に答える 2

2

ここでより明白に見える別のアプローチは、展開されたリストで組み込みのmapwith sumalongを使用することです。zip

>>> map(sum, zip(*mylist))
[51, 57, 63]

そして、あなたが発電機のファンなら、以下はいくつかの利点を追加するかもしれません

>>> from itertools import izip, imap
>>> list(imap(sum, izip(*mylist)))
[51, 57, 63]
于 2013-10-15T10:52:32.623 に答える