This question is similar to Python - Find longest (most words) key in dictionary - but I need the pure number of characters.
Example input:
d = {'group 1': 1, 'group 1000': 0}
Output:
10
>>> max(len(x) for x in d)
or
>>> max(map(len, d))
Alternative, which is as fast as @jamylak's solution and more pythonic:
from itertools import imap
max(imap(len, d))
See comparison:
$ 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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With