g=[[1,2,3],[4,5,6],[7,8,9]]
h=[[10,11,12,13],[14,15,16,17]]
我需要将列表h中的第一个索引添加到列表g中。结果应该如下表所示:
g=[[1,2,3,10,14],[4,5,6,11,15],[7,8,9,12,16]]
这就是我到目前为止所做的,但它不起作用:
g=[[1,2,3],[4,5,6],[7,8,9]]
h=[[10,11,12,13],[14,15,16,17]]
for i in range(len(g)):
for u in range(len(g[0])):
g[i].append(h[i][u])
答案 0 :(得分:1)
g=[[1,2,3],[4,5,6],[7,8,9]]
h=[[10,11,12,13],[14,15,16,17]]
idx = 0
for L1 in g:
for L2 in h:
L1.append(L2[idx])
idx+=1
g
返回
[[1, 2, 3, 10, 14], [4, 5, 6, 11, 15], [7, 8, 9, 12, 16]]
祝你好运!
答案 1 :(得分:0)
从hz
内容(h
)*h
自动增加邮政对象next(hz)
,因为列表理解会逐步完成g
[*next(hz)]
(或list(next(hz))
)将zip对象中的元组转换为列表
g =[[1,2,3],[4,5,6],[7,8,9]]
h=[[10,11,12,13],[14,15,16,17]]
hz = zip(*h)
g = [e + [*next(hz)] for e in g]
g
Out[133]: [[1, 2, 3, 10, 14], [4, 5, 6, 11, 15], [7, 8, 9, 12, 16]]
对于某些人而言,目标是“一线”':
g = [e + list(f) for e, f in zip(g, zip(*h))]
答案 2 :(得分:0)
如果你使用enumerate()
和列表理解,你可以做更快的单行:
g = [n + [m[i] for m in h] for i, n in enumerate(g)]
# Returns: [[1, 2, 3, 10, 14], [4, 5, 6, 11, 15], [7, 8, 9, 12, 16]]
答案 3 :(得分:0)
我将外环越过h而不是g。不需要索引。
>>> g = [[1,2,3],[4,5,6],[7,8,9]]
>>> h = [[10,11,12,13],[14,15,16,17]]
>>> for hlist in h:
for glist, hvalue in zip(g, hlist):
glist.append(hvalue)
>>> g
[[1, 2, 3, 10, 14], [4, 5, 6, 11, 15], [7, 8, 9, 12, 16]]
换句话说:取代每个g列表并从h列表中获取其他值,取出每个h列表并将其值传播到g列表中。