Python 确定最低计数的最简单的方法
我发现自己在遍历字典时希望保持最小/最大计数 例如:Python 确定最低计数的最简单的方法,python,iteration,Python,Iteration,我发现自己在遍历字典时希望保持最小/最大计数 例如: d = { 'Bob': 2000, 'Larry': 6000, 'Mary': 5 } lowest_value = 1000000 list_of_keys = [] for key, value in d.items(): if value > 100: list_of_keys.append(key) if value < lowest_value:
d = {
'Bob': 2000,
'Larry': 6000,
'Mary': 5
}
lowest_value = 1000000
list_of_keys = []
for key, value in d.items():
if value > 100:
list_of_keys.append(key)
if value < lowest_value:
lowest_value = value
d={
“鲍勃”:2000年,
拉里:6000,
“玛丽”:5
}
最低值=1000000
密钥列表=[]
对于键,d.items()中的值:
如果值>100:
列出\u个键。追加(键)
如果值<最低值:
最低值=最小值
如果值<最低值:,有没有更好的方法将我的最低值设置为肯定大于第一个的数字
对于最大计数
我通常可以使用0或-1 您可以从math导入inf,并使用inf
而不是一些特殊的数字。在Python中,int与float的比较非常好。您可以使用或喜欢:
代码:
测试代码:
结果:
Python的内置min
可以使用iterable。您还可以将>100
过滤器放入genexpr中。Python dicts还可以只返回一个iterable值,因为您不关心键
lowest_value = min(value for value in d.values() if value > 100)
您可以在列表comp中单独获取密钥列表
list_of_keys = [key for key, value in d.items() if value > 100]
这两次迭代,但没关系,除非您的DICT非常大(在这种情况下,考虑使用大数据DATAFRAMs)。
为了避免重复过滤步骤,可以先使用dict comp
d2 = {k: v for k, v in d.items() if v > 100}
lowest_value = min(d2.values())
list_of_keys = list(d2.keys())
一艘邮轮
ks, low = [f(i) for f, i in zip([list, min], zip(*((k, v) for k, v in d.items() if v>100)))]
@Stephernauch我的意思是最初设置最低值
。您没有值,或者您的意思是max(list(d.values())
?我想这可能行得通还有float('inf')
你也可以用list\u of_key=[…]来避免过滤步骤;最低值=d[min(键列表,键=d.get)]
。顺便说一句:你的一行是最慢的方法。甚至是最低值=min(map(d.get,list\u键))
list_of_keys = [key for key, value in d.items() if value > 100]
d2 = {k: v for k, v in d.items() if v > 100}
lowest_value = min(d2.values())
list_of_keys = list(d2.keys())
ks, low = [f(i) for f, i in zip([list, min], zip(*((k, v) for k, v in d.items() if v>100)))]