我如何将一个列表/数组除以另一个?

时间:2018-01-08 11:09:05

标签: python

例如,我收集了一个列表中最小数字的列表,我需要将它们相互划分,但在列表中重复,类似于笛卡尔积。

下面不是确切的代码,但类似。如果我发布它,确切的代码会让人感到困惑。

lowestnumbers = [2,3,4,5,6,7,8]
highestnumbers = [2,3,4,5,6,7,8]
for matchhigh in highestnumbers:
    print (matchhigh)
for matchlow in lowestnumbers:
    print (matchlow)
    percentage = (matchlow / matchhigh - 1.0)
    print (percentage)

当我这样做时,它会重复“matchhigh”中的最后一个数字,并反复将该数字除以最后一个数字。

我需要一些事情来做下面的事情,我完全迷失了。

list1 = [1,2,3]
list2 = [3,2,1]
for number in list1
     answer = number / list2
     print = answer

期望的输出:

0.3333333333333333
0.5
1
0.6666666666666667
1
2
1
1.5
3

如果我能解决问题,请告诉我,这让我感到疯狂。

2 个答案:

答案 0 :(得分:1)

嵌套循环将执行:

>>> list1 = [1,2,3]
>>> list2 = [3,2,1]
>>> for x1 in list1:
...     for x2 in list2:
...         print(x1/x2)  # Python3
...         print(float(x1)/x2)  # Python2

itertools.product

>>> from itertools import product
>>> for x1, x2 in product(list1, list2):
...     print(x1/x2)  # Python3
...     print(float(x1)/x2)  # Python2

0.3333333333333333
0.5
1.0
0.6666666666666666
1.0
2.0
1.0
1.5
3.0

答案 1 :(得分:0)

from itertools import product

div_list = [a / b for a, b in product(list1, list2)]

print('\n'.join(str(x) for x in div_list))