如何在列表中搜索两个值之间的数字?

时间:2015-10-14 03:13:18

标签: python list search

在Python中,我有一个使用.append()添加的数字列表。我需要搜索我的列表以查找它是否包含两个设置值之间的任何特定整数,例如/在30到40之间。

我知道我可以使用代码if x in n:在列表中搜索单个整数,但我不知道如何为多个整数执行此操作。

4 个答案:

答案 0 :(得分:3)

这是适合您的功能。它返回一个列表,其中包含给定的下限和上限之间的所有值,包括重复项。如果您想摆脱重复,请使用set。我不会先对它进行排序,因为这样做的效率低于迭代列表的效率。

def between(l1,low,high):
    l2 = []
    for i in l1:
        if(i > low and i < high):
            l2.append(i)
    return l2


l = [1,3,4,5,1,4,2,7,6,5] 

print( between(l,2,5) )
  

[3,4,4]

修改

或者,嘿,如果你是整个简洁的话,让我们使用列表理解!

l = [1,3,4,5,1,4,2,7,6,5]
l2 = [i for i in l if i > 2 and i < 5]    
print(l2)
  

[3,4,4]

答案 1 :(得分:0)

由于您尚未提供任何代码,我将为您提供一个简单的算法:

for every number in the list
    if the number is greater than 30 and less than 40
        do something with the number

例如,如果您只需要知道是否存在这样的数字,则可以在满足条件后将布尔值设置为true。

This answer包含了一种更简洁的方式来实现您的想法。

答案 2 :(得分:0)

min=30
max=40

nums = [8, 32, 35, 180]
nums.append(13)

for x in nums:
   if x > min and x < max: print x

答案 3 :(得分:0)

以上一些答案都很有效。我只是给出了一个排序列表的方法。

filter(lambda x: x>30 and x<40,sorted(a))

a是输入列表