Python 多个列表元素比较
Python multiple lists elements compare
我想比较所有列表元素并检查它们是否在其他元素的值内是 + 或 - 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
我试过双 for 循环,但它只检查 list1 中的一个元素:
for x in list1:
for xy in list2, list3:
if x <= 400 <= xy:
print "something"
但它从不打印任何东西。
我希望我的解释和示例足够好,如果不够好,请让我知道您缺少什么!
提前致谢!
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 的通用代码,因此您可能需要调整它。
我想比较所有列表元素并检查它们是否在其他元素的值内是 + 或 - 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
我试过双 for 循环,但它只检查 list1 中的一个元素:
for x in list1:
for xy in list2, list3:
if x <= 400 <= xy:
print "something"
但它从不打印任何东西。
我希望我的解释和示例足够好,如果不够好,请让我知道您缺少什么!
提前致谢!
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 的通用代码,因此您可能需要调整它。