在两个列表中循环

2024-09-26 22:52:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这些清单:

list1 = [3, 5, 2, 1, 9]
list2 = [6, 9, 1, 2, 4]
list3 = []
list4 = []

我想通过以下公式:

x = a/b
y = 1/b

其中a是list1中的每个值,b是list2中的每个值,并将计算结果追加到两个空列表list3和list4中。

这就是我所拥有的,但这是一场灾难,哈哈

u = 0
while u<len(list1):
    for a in list1:
        for b in list2:
            x = a/b
            y = 1/b
            u+=1
            list3.append(x,)
            list4.append(y,)

有人能帮我吗?


Tags: in列表forlen灾难公式计算结果append
3条回答
for a,b in zip(list1,list2):
  x = a/b
  y = 1/b

??像这样的东西

只需在Python中使用zip函数:

for a, b in zip(list1, list2):
    list3.append(a/b)
    list4.append(1/b)

这是一条单行线:

>>> list3,list4 = zip(*[(a/b,1/b) for a,b in zip(list1,list2)])
>>> list3
(0, 0, 2, 0, 2)
>>> list4
(0, 0, 1, 0, 0)

输出是tuples。但它们很容易转换成list

哦。通过使用generator expression而不是list comprehension,它可以使内存更加高效:

>>> zip(*((a/b,1/b) for a,b in zip(list1,list2)))

相关问题 更多 >

    热门问题