这个问题类似于Python - 在字典中查找最长(大多数单词)键 - 但我需要纯字符数.
输入示例:
d = {'group 1': 1, 'group 1000': 0}
Run Code Online (Sandbox Code Playgroud)
输出:
10
Run Code Online (Sandbox Code Playgroud)
eum*_*iro 12
>>> max(len(x) for x in d)
Run Code Online (Sandbox Code Playgroud)
要么
>>> max(map(len, d))
Run Code Online (Sandbox Code Playgroud)
>>> d = {'group 1': 1, 'group 1000': 0}
>>> len(max(d, key=len))
10
Run Code Online (Sandbox Code Playgroud)
这个解决方案是最快的,但我更喜欢@eumiro和@ ms4py的解决方案,因为它们不重复这个len功能两次并且更加pythonic imo.
另类,与@ jamylak的解决方案一样快,更加pythonic:
from itertools import imap
max(imap(len, d))
Run Code Online (Sandbox Code Playgroud)
看比较:
$ python -m timeit -s "d = {'group 1': 1, 'group 1000': 0}" "len(max(d,key=len))"
1000000 loops, best of 3: 0.538 usec per loop
$ python -m timeit -s "d = {'group 1': 1, 'group 1000': 0}" "max(len(x) for x in d)"
1000000 loops, best of 3: 0.7 usec per loop
$ python -m timeit -s "d = {'group 1': 1, 'group 1000': 0}; from itertools import imap" \
"max(imap(len, d))"
1000000 loops, best of 3: 0.557 usec per loop
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8075 次 |
| 最近记录: |