找到大于定义参数编号的最小数字

omr*_*don 3 python

我想在列表中找到最接近我的号码但比他大的号码。

例如:

num = 20
li = [19,23,24,1,2]
Run Code Online (Sandbox Code Playgroud)

我想要 23。

我试过这样做:

hour = min(dfHour, key=lambda x:(x-localtime[3])>0)
Run Code Online (Sandbox Code Playgroud)

但它只返回最接近的,即使它不是我的数字更大

另一个问题是,如果我在列表中还有另外 23 个,我该如何返回它们(它们的索引已经足够好了)

Pad*_*ham 5

您还可以使用过滤器:

print min(filter(lambda x: x > num,li))
23
Run Code Online (Sandbox Code Playgroud)

如果您有重复的值:

num = 20
li = [19,23,24,23,1,2]
li_sort = sorted(x for x in li if x > num)
print [x for x in li_sort  if x == li_sort[0]]
Run Code Online (Sandbox Code Playgroud)