Python Словарь: создать список для всех ключей в dict, другой для всех значений в dict - PullRequest
1 голос
/ 25 апреля 2020

У меня есть словарь, который выглядит следующим образом: Counter({'firstKey': 1708, 'secondKey': 1589, 'thirdKey': 1424})

Я хотел бы иметь два списка:

В первом списке должны быть перечислены все ключи: ['firstKey', 'secondKey', 'thirdKey']

Второй список должен содержать все значения: [1708, 1589, 1424]

Пожалуйста, помогите

Ответы [ 4 ]

2 голосов
/ 25 апреля 2020

Попробуйте list(Counter.keys()) и list(Counter.values())

>>> Counter= {'firstKey': 1708, 'secondKey': 1589, 'thirdKey': 1424}
>>> Keys = list(Counter.keys())
>>> Keys
['firstKey', 'secondKey', 'thirdKey']
>>> Vals = list(Counter.values())
>>> Vals
[1708, 1589, 1424]
>>> 
2 голосов
/ 25 апреля 2020

Использование dict.keys() и dict.values() и приведение их к list:

d = {'firstKey': 1708, 'secondKey': 1589, 'thirdKey': 1424}

print(list(d.keys()))
print(list(d.values()))

ВЫХОД:

['firstKey', 'thirdKey', 'secondKey']                                                                                                                          
[1708, 1424, 1589]
1 голос
/ 25 апреля 2020

Вы можете назначить две переменные списка в одной строке следующим образом:

d = Counter({'firstKey': 1708, 'secondKey': 1589, 'thirdKey': 1424})

keys,values = map(list,zip(*d.items()))

output:

print(keys)
print(values)

['firstKey', 'secondKey', 'thirdKey']
[1708, 1589, 1424]
1 голос
/ 25 апреля 2020

Приведите list() к словарю, чтобы получить ключи в списке, и приведите list() к dict.values(), чтобы получить значения в списке:

>>> from collections import Counter
>>> d = Counter({'firstKey': 1708, 'secondKey': 1589, 'thirdKey': 1424})
>>> l1 = list(d)
>>> l1
['firstKey', 'secondKey', 'thirdKey']
>>> l2 = list(d.values())
>>> l2
[1708, 1589, 1424]

Можно также использовать dict.keys():

>>> l1 = list(d.keys())
>>> l1
['firstKey', 'secondKey', 'thirdKey']

Но в действительности это не нужно, поскольку list(d) по умолчанию выдаст вам ключи.

...