用Python中另一个不同列表的值替换列表列表的值

时间:2018-08-31 22:01:54

标签: python list

我想知道是否可以用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]]

非常感谢!

2 个答案:

答案 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