例如,我收集了一个列表中最小数字的列表,我需要将它们相互划分,但在列表中重复,类似于笛卡尔积。
下面不是确切的代码,但类似。如果我发布它,确切的代码会让人感到困惑。
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
如果我能解决问题,请告诉我,这让我感到疯狂。
答案 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
>>> 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))