在Python中检查字典中哪个键的字母最多

2024-05-29 02:21:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Python代码字典,如下所示:

S = {(x0): 'omicron', (x1): 'a', (x2): 'ab', (x3): 'abbr', (x4): 'abr', (x5): 'abrf', (x6): 'abrfa', (x7): 'af', '(x8)': 'afc'}

我想检查哪个键对应的字典的字母数最高,除了有“omicron”的那一个。本例中的答案应该是:(x6),因为它有一个包含5个字母的字典,比任何其他键都多,并且不计算(x0):'omicron'

有没有一种有效的方法可以做到这一点?多谢各位


Tags: 代码字典ab字母x1x2abbromicron
2条回答

您可以使用max的关键参数:

res = max(S, key=lambda x: (S[x] != 'omicron', len(S[x])))
print(res)

输出

(x6)

这将使值不同于'omicron'的键的值高于等于(1>;0)的键的值。对于那些没有'omicron'值的关键帧,请将长度用作连接断路器

S = {('x0'): 'omicron', ('x1'): 'a', ('x2'): 'ab', ('x3'): 'abbr', ('x4'): 'abr', ('x5'): 'abrf', ('x6'): 'abrfa', ('x7'): 'af', ('x8'): 'afc'}
keys = list(S.keys())

longest = 0
word = ''
for i in range(len(keys)):
    if len(S[f'{keys[i]}']) > longest and S[f'{keys[i]}'] != 'omicron':
        longest = len(S[f'{keys[i]}'])
        word = keys[i]
print(longest, word)

输出:

5 x6

相关问题 更多 >

    热门问题