如何在Python中将元素列表与另一个列表列表相乘

时间:2019-03-05 01:44:29

标签: python python-3.x

我有两个具有任意数字的列表:list_1 = [2,4]和list_2 = [[10,20,30],[100,1000,10000]]我需要list_1的第一个索引(即list_1 [0 ])与list_2 [0](即sub_list)中的每个数字相乘。下一个索引(例如在for循环中)也会发生同样的情况。
到目前为止,我已经尝试过

list_1 = [2,4]

list_2 = [[10,20,30],[100,1000,10000]]

对于list_1中的我:

对于list_2中的j:

打印(i * j)

代码要么重复列表,要么对我抛出错误。任何帮助深表感谢。

2 个答案:

答案 0 :(得分:2)

例如,如果我没看错的话,您希望list_1[0]list_2[0]的每个元素相乘,而list_1[1]与{{ 1}}。正确的方法是将list_2[1] ziplist_1在一起(以成对获得乘数和关联的子list_2),然后在子list

list

您的代码失败,因为您(实际上)试图将for op1, sublist in zip(list_1, list_2): for op2 in sublist: print(op1 * op2) 乘以每个 op1,而不是 contents 一个 sublist,因此您调用了序列乘法,执行sublist获得2 * [10, 20, 30],执行[10, 20, 30, 10, 20, 30]获得2 * [100, 1000, 10000],而不是将{{ 1}}由[100, 1000, 10000, 100, 1000, 10000]210分别按预期进行。

答案 1 :(得分:-2)

    list_1 = [2,4]
    list_2 = [[10,20,30], [100,1000,10000]] 
    for i in range(len(list_1)):
...     for item in list_2:
...             for j in range(len(item)):
...                     print(list_1[i]*item[j])

返回

20
40
60
200
2000
20000
40
80
120
400
4000
40000