3

リスト内のリストの末尾に 1 つのリスト内の項目を追加できるように、2 つのリストを「マージ」する良い方法はありますか? 例えば...

a2dList=[['a','1','2','3','4'],['b','5','6','7','8'],[........]]
otherList = [9,8,7,6,5]

theFinalList=[['a','1','2','3','4',9],['b','5','6','7','8',8],[....]]

a2dList が文字列でできていて、 otherList が数字であることが問題かどうかはわかりません...試してみましappendたが、結局

theFinalList=[['a','1','2','3','4'],['b','5','6','7','8'],[.......],[9,8,7,6,5]
4

3 に答える 3

5
>>> a2dList=[['a','1','2','3','4'],['b','5','6','7','8']]
>>> otherList = [9,8,7,6,5]
>>> for x, y in zip(a2dList, otherList):
        x.append(y)


>>> a2dList
[['a', '1', '2', '3', '4', 9], ['b', '5', '6', '7', '8', 8]]

Python 2.x では、itertools.izip代わりに遅延圧縮の使用を検討してください。

from itertools import izip # returns iterator instead of a list

またzip、最も短いイテラブルの終わりに到達すると自動的に停止することに注意してください。そのため、アイテムのみの場合、otherListまたはアイテムa2dListしかない場合1、このソリューションはエラーなしで機能し、インデックスによるリストを変更すると、これらの潜在的な問題のリスクが生じます。

于 2013-05-21T09:56:28.670 に答える
1
>>> a = [[1,2,3,4],[1,2,3,4]]
>>> b = [5,6]
>>> for index,element in enumerate(b):
        a[index].append(element)


>>> a
[[1, 2, 3, 4, 5], [1, 2, 3, 4, 6]]
于 2013-05-21T10:02:20.633 に答える
0
zip(*zip(*a2dList)+[otherList])
于 2013-05-21T10:48:14.890 に答える