您好我想从lys1和lys2生成一个名为“lys3”的新列表,其长度为3,包含(lys1的第一个值* lys2的第二个值),(lys1的第二个值* lys2的第三个值) ),(lys1的第三个值* lys2的第四个值)使用循环。
lys1 = [5,6,2,9]
lys2 = [3,8,3,6]
lys3 = [i * j for i in lys1 for j in lys2]
print(lys3)
到目前为止,我已经能够找到物流,
答案 0 :(得分:1)
如果要同时迭代多个迭代,则应使用zip
。在你的情况下,你应该切掉第二个iterable的第一个元素,这样你就可以在第一个和第二个列表之间找到所需的“偏移量”:
[i * j for i, j in zip(lys1, lys2[1:])]
你所做的实际上是一个双循环,迭代第一个列表中每个元素的第二个列表中的每个元素。大致相当于:
for i in lys1:
for j in lys2:
...
产生16个元素。