我想知道是否可以用Python中的另一个列表的值替换列表的值:
说
W = [[0,0],[0,0,0],[0,0,0,0,0]]
V = [1,2,3,4,5,6,7,8,9,10]
我想知道是否可以将W的值替换为V的值,使它变成如下所示:
W = [[1,2],[3,4,5],[6,7,8,9,10]]
非常感谢!
答案 0 :(得分:4)
您可以使用iter
:
W = [[0,0],[0,0,0],[0,0,0,0,0]]
V = [1,2,3,4,5,6,7,8,9,10]
v = iter(V)
new_w = [[next(v) for _ in i] for i in W]
输出:
[[1, 2], [3, 4, 5], [6, 7, 8, 9, 10]]
答案 1 :(得分:1)
将V
转换为迭代器,用itertools.islice
切片,然后分配回W
:
from itertools import islice
it = iter(V)
for i in W:
i[:] = islice(it, len(i))
print (W)
[[1, 2], [3, 4, 5], [6, 7, 8, 9, 10]]
我之所以这样,是因为它在不创建新列表的情况下就地更新了W
。