gpt4 book ai didi

Python 字典 - 查找值等于的最小键

转载 作者:行者123 更新时间:2023-11-28 22:46:40 24 4
gpt4 key购买 nike

我有一本字典,我想找到 value[1] 等于指定字符串的最小键。

somedict = {'1': ['110', 'A'], '3': ['1', 'A'], '2': ['3', 'B'], '4': ['1', 'B']}
mindict = min(somedict.iteritems(), key=itemgetter(0) )

这给了我 ('1', ['110', 'A'])

我想通过找到值为“B”的最小键来进一步过滤

给我结果 ('2', ['3', 'B'])

怎么办?

最佳答案

首先使用生成器表达式过滤您的项目:

min((i for i in somedict.iteritems() if i[1][-1] == 'B'), key=itemgetter(0))

生成器表达式从 somedict.iteritems() 生成元素,其中值的最后一个条目等于 'B'

请注意,这里存在没有项目符合您的过滤器的风险!如果是这种情况,请确保在传递空序列时捕获 min() 抛出的 ValueError。如果您使用的是 Python 3.4 或更新版本,您可以指定为该情况返回的默认值:

min((i for i in somedict.iteritems() if i[1][-1] == 'B'),
key=itemgetter(0), default=())

如果没有项的值中有最后一个条目 'B',它将返回一个空元组。

演示:

>>> from operator import itemgetter
>>> somedict = {'1': ['110', 'A'], '3': ['1', 'A'], '2': ['3', 'B'], '4': ['1', 'B']}
>>> min((i for i in somedict.iteritems() if i[1][-1] == 'B'), key=itemgetter(0))
('2', ['3', 'B'])

关于Python 字典 - 查找值等于的最小键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27232104/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com