Skip to main content
 首页 » 编程设计

python 将两个列表元素明智地相乘之其中一个是嵌套的

2025年05月04日14txw1958

我有两个列表:

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>