使用Python中的新元素从先前列表生成新列表

时间:2018-01-14 19:53:36

标签: python list

您好我想从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)

到目前为止,我已经能够找到物流,

1 个答案:

答案 0 :(得分:1)

如果要同时迭代多个迭代,则应使用zip。在你的情况下,你应该切掉第二个iterable的第一个元素,这样你就可以在第一个和第二个列表之间找到所需的“偏移量”:

[i * j for i, j in zip(lys1, lys2[1:])]

你所做的实际上是一个双循环,迭代第一个列表中每个元素的第二个列表中的每个元素。大致相当于:

for i in lys1:
    for j in lys2:
        ...

产生16个元素。