我想比较所有列表元素,并检查它们在其他元素的值中是+或 - 40(或相同)。
例如:list1中的值400与list2&中的所有元素进行比较list3,如果其中一个元素在360和440之间。
list1 = [100,200,300,400,400]
list2 = [90,400,410,500,600]
list3 = [600,380,110,800,900]
output: 400,410,380
我尝试了一个双循环,但后来只检查了list1中的一个元素:
for x in list1:
for xy in list2, list3:
if x <= 400 <= xy:
print "something"
但它永远不会打印出来。
我希望我的解释和例子足够好,如果没有,请告诉我你错过的内容!
提前谢谢!
答案 0 :(得分:0)
list1 = [100,200,300,400,400]
list2 = [90,400,410,500,600]
list3 = [600,380,110,800,900]
complist = [j for i in zip(list2, list3) for j in i]
myrange=40
for x in list1:
for y in complist:
if x-myrange <= y <= x+myrange:
print('list1={}: complist={} is within range {}'.format(x, y, myrange))
我创建了一个新列表,其中包含您要从list2
和list3
进行比较的所有值。我想我使用的打印代码是Python3的通用代码,因此您可能需要对此进行调整。