我希望从列表中识别出大于0的最小值,但需要一些帮助。
任何人都可以提供一些示例代码吗?
由于
答案 0 :(得分:4)
给定名为values
的初始列表:
values = [...]
result = min(value for value in values if value > 0)
结果值存储在result
中。在这种情况下,我们使用生成器表达式和列表推导的instead 过滤来节省内存O(1)
内存。
答案 1 :(得分:3)
def smallest_value_greater_than_0(numbers):
return min(num for num in numbers if num > 0)
根据您的评论中的要求,如果您有字典并且想要返回具有最小值的项目的键和值:
def smallest_value_greater_than_0(numbers):
value, key = min((v, k) for k, v in numbers.iteritems() if v > 0)
return key, value
numbs = dict(A=2, B=3, C=0)
key, value = smallest_value_greater_than_0(numbs) # key="A", value=2
(在Python 3.x中,只需使用numbers.items()
而不是numbers.iteritems()
。另请注意,在Python 3中,所有键应该是相同的类型。)
请注意,如果多个条目具有相同的值,则将使用Python的排序顺序返回具有最低键的条目。例如,如果A = 1,B = 3,C = 0,D = 1,您将得到A = 1,而不是D = 1。如果某些键是数字而其他键是字符串,或者某些键是大写的,而某些键是小写的,则可能无法获得预期的结果,尽管它是可预测的。
答案 2 :(得分:0)
您可以使用生成器:
def smallestPositive(lst):
return min(x for x in lst if x > 0)