如何使每个元素(列表)的二维列表是由另外两个列表的并集创建的?
How to make a 2D list with every element(list) is created by union of two other lists?
我有两个列表:
D1=[["a "," "," "," "," "," "],["b "," ","o"," "," "," "],["c ","x"," "," "," "," "],["d "," "," "," "," "," "],["e "," "," "," "," "," "]]
D2=[["a "," ","o"," ","x"," "],
["b "," "," "," "," "," "],["c "," "," "," "," "," "],["d "," "," "," "," "," "],["e "," "," "," "," "," "]]
D=[]
我想制作一个列表 D
所以,D[i]=D1[i] + D2[i]
,例如第一个元素(列表)如下所示:
D=[["a "," "," "," "," "," ","a "," ","o"," ","x"," "],...]
请帮助我,我是新来的 python
如果不想修改D1,先把D1复制到D。然后在python中使用extend
方法。它将 list2 的所有元素添加到 list1。
这里是一个简单的代码:虽然这段代码的时间复杂度是O(n^2),但是可以改进。
D1=[["a "," "," "," "," "," "],["b "," ","o"," "," "," "],["c ","x"," "," "," "," "],["d "," "," "," "," "," "],["e "," "," "," "," "," "]]
D2=[["a "," ","o"," ","x"," "],
["b "," "," "," "," "," "],["c "," "," "," "," "," "],["d "," "," "," "," "," "],["e "," "," "," "," "," "]]
D = D1 [:]
for i in range (len (D)):
D[i].extend (D2 [i])
print D
试试这个:
D = [i+j for i,j in zip(D1,D2)]
如果长度不同,它将削减其余部分并前进到 D1
、D2
的最小值。如果你想要相反的,使用 zip_longest
,像这样:
from itertools import zip_longest
D = [i+j for i,j in zip_longest(D1,D2)]
但如果 D1
和 D2
的长度相同,两者都可以工作。
根据您的意愿 (D[i] = D1[i] + D2[i]
),最简单的方法是使用理解列表。假设 len(D1) == len(D2)
,:
D = [ D1[i] + D2[i] for i in range(len(D1)) ]
会完成任务的。
我有两个列表:
D1=[["a "," "," "," "," "," "],["b "," ","o"," "," "," "],["c ","x"," "," "," "," "],["d "," "," "," "," "," "],["e "," "," "," "," "," "]]
D2=[["a "," ","o"," ","x"," "],
["b "," "," "," "," "," "],["c "," "," "," "," "," "],["d "," "," "," "," "," "],["e "," "," "," "," "," "]]
D=[]
我想制作一个列表 D
所以,D[i]=D1[i] + D2[i]
,例如第一个元素(列表)如下所示:
D=[["a "," "," "," "," "," ","a "," ","o"," ","x"," "],...]
请帮助我,我是新来的 python
如果不想修改D1,先把D1复制到D。然后在python中使用extend
方法。它将 list2 的所有元素添加到 list1。
这里是一个简单的代码:虽然这段代码的时间复杂度是O(n^2),但是可以改进。
D1=[["a "," "," "," "," "," "],["b "," ","o"," "," "," "],["c ","x"," "," "," "," "],["d "," "," "," "," "," "],["e "," "," "," "," "," "]]
D2=[["a "," ","o"," ","x"," "],
["b "," "," "," "," "," "],["c "," "," "," "," "," "],["d "," "," "," "," "," "],["e "," "," "," "," "," "]]
D = D1 [:]
for i in range (len (D)):
D[i].extend (D2 [i])
print D
试试这个:
D = [i+j for i,j in zip(D1,D2)]
如果长度不同,它将削减其余部分并前进到 D1
、D2
的最小值。如果你想要相反的,使用 zip_longest
,像这样:
from itertools import zip_longest
D = [i+j for i,j in zip_longest(D1,D2)]
但如果 D1
和 D2
的长度相同,两者都可以工作。
根据您的意愿 (D[i] = D1[i] + D2[i]
),最简单的方法是使用理解列表。假设 len(D1) == len(D2)
,:
D = [ D1[i] + D2[i] for i in range(len(D1)) ]
会完成任务的。