我有两个列表:
C = [3, 2, 1]
D = [[0, 1, 2, 3], [0, 1, 2], [0, 1]]
我想达到这样的结果:
E = [[0, 3, 6, 9], [0, 2, 4], [0, 1]]
仅使用列表理解。这可能吗?我被困在:
E = zip(C, D)
[i * E[0][0] for i in E[0][1]] which gives:
[0, 3, 6, 9]
但我不能修改它来申请第二个列表的其他元素
请您参考如下方法:
是的,这是可能的:
>>> [[c * d_i for d_i in d] for c, d in zip(C, D)]
[[0, 3, 6, 9], [0, 2, 4], [0, 1]]
这里只需要两个循环,第一个循环遍历 zip(C, D),第二个循环遍历 D 的每个列表/p>
