Существует ли больше pythonic способа создать этот словарь?

list1 = ['10', '1,000', '51,000', '500', '63,000']
list1 =[int(''.join(i.split(','))) for i in list1 ]
print(list1)
# output [10, 1000, 51000, 500, 63000]
6
задан Hank Gay 15 April 2009 в 22:32
поделиться

4 ответа

>>> l = [ 1, 2, 3, 4 ]
>>> dict( ( v, v**2 ) for v in l )
{1: 1, 2: 4, 3: 9, 4: 16}

In Python 3.0 you can use a "dict comprehension" which is basically a shorthand for the above:

{ v : v**2 for v in l }
15
ответ дан 8 December 2019 в 02:24
поделиться

Py3K:

{ key_for_value(value) : value for value in values }
5
ответ дан 8 December 2019 в 02:24
поделиться

At least it's shorter:

dict((key_from_value(value), value) for value in values)
18
ответ дан 8 December 2019 в 02:24
поделиться

Этот метод избегает синтаксиса понимания списка:

dict(zip(map(key_from_value, values), values))

Я никогда не буду претендовать на звание авторитета в «Pythonic», но этот способ кажется хорошим.

0
ответ дан 8 December 2019 в 02:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: