给定一个未排序的数字列表,我想找到比N大的最小数字(如果有的话)。
在C#中,我会这样做(省略了检查):
var x = list.Where(i => i > N).Min();
有没有一种简短易读的Python方式可以实现这个?
>>> l = [4, 5, 12, 0, 3, 7]
>>> min(x for x in l if x > 5)
7
min(x for x in mylist if x > N)
其他人已经给出了列表推导式的答案。作为另一种选择,filter
可用于“过滤”掉列表中的元素。
min(filter(lambda t: t > N, mylist))
x = min(i for i in mylist if i > N)