我有两个具有任意数字的列表: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)
代码要么重复列表,要么对我抛出错误。任何帮助深表感谢。
答案 0 :(得分:2)
例如,如果我没看错的话,您希望list_1[0]
与list_2[0]
的每个元素相乘,而list_1[1]
与{{ 1}}。正确的方法是将list_2[1]
zip
和list_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]
,2
和10
分别按预期进行。
答案 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