Skip to main content
 首页 » 编程设计

python之只打印列表中 x 和 y 之间的数字

2025年05月04日12daizhj

我试图找到一个库,我可以用它来识别一个数字是否介于两个数字之间,或者我是否必须使用 for 循环和 if 条件遍历每个数字

def get_numbers_in_between(li, x, y): 
    # x can be bigger than y or vice versa 
    if x > y: 
        big = x 
        small = y 
    else: 
        big = y 
        small = x 
 
    nums_in_between = [n for n in li if (n >= small and n <= big)] 
    return nums_in_between 
 
 
print(get_numbers_in_between([9, 10, 11, 15, 19, 20, 21], 20, 10)) 

输出:

[10, 11, 15, 19, 20] 

是否有一个库可以自动找出哪个更大/更小(x,y),并将列表作为输入并返回一个包含数字之间的新列表?

请您参考如下方法:

如果您从给定列表开始并需要提取满足条件的列表:

lst = [9, 10, 11, 15, 19, 20, 21] 
print([n for n in lst if 10 <= n <= 20]) 

如果你需要所有的整数就可以了

list(range(10, 20+1)) 

如果您需要先对最大值和最小值进行排序,这是一个选项:

def get_numbers_in_between(li, x, y): 
    mx, mn = sorted((x, y)) 
    return [n for n in li if mx <= n <= mn] 
 
print(get_numbers_in_between(li=[9, 10, 11, 15, 19, 20, 21], x=20, y=10))