2014-10-21 3 views

ответ

1

Вы можете построить новый словарь с реальными ключами и длиной элементов, соответствующих им, с словарем понимания, как этого

>>> {num: len(d[num]) for num in d} 
{0: 3, 1: 3, 2: 2, 3: 0, 4: 0} 

Здесь мы перебирать ключи словаря и то с num: len(d[num]) мы используем тот же ключ, что и новый ключ, и длину значения, соответствующего ключу, в качестве нового значения.

+0

Или сохранить взгляд вверх каждый раз, когда: '{ k: len (v) для k, v в d.items()} ' –

+0

нет, дважды для каждого значения, но некоторые. – ch3ka

+0

Ну, вы хватаете ключ, а затем выполняете поиск, чтобы получить значения. поэтому более эффективно использовать '.items()' при построении 'dict' вместо того, чтобы искать каждый ключ, чтобы получить значение –

0

Чтобы соответствовать вашим желаемым результатам, мы должны specialcase set:

>>> print('\n'.join("{}-{}".format(key, 1 if isinstance(val, set) else len(val)) for key, val in dct.items())) 
0-3 
1-1 
2-2 
3-0 
4-0 
Смежные вопросы