Python多列表元素比较

时间:2016-11-15 09:25:00

标签: python list compare elements

我想比较所有列表元素,并检查它们在其他元素的值中是+或 - 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"

但它永远不会打印出来。

我希望我的解释和例子足够好,如果没有,请告诉我你错过的内容!

提前谢谢!

1 个答案:

答案 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))

我创建了一个新列表,其中包含您要从list2list3进行比较的所有值。我想我使用的打印代码是Python3的通用代码,因此您可能需要对此进行调整。