У меня есть список, который выглядит так:
[('A', 1), ('B', 2), ('C', 3)]
Я хочу превратить его в словарь, который выглядит так:
{'A': 1, 'B': 2, 'C': 3}
Как лучше всего это сделать?
РЕДАКТИРОВАТЬ: Мой список кортежей на самом деле больше похож:
[(A, 12937012397), (BERA, 2034927830), (CE, 2349057340)]
python
list
dictionary
Фред Уилсон
источник
источник
A
,B
(илиBERA
) иC
(илиCE
) на самом деле? СпасибоОтветы:
ЭТО ваш актуальный вопрос.
Ответ заключается в том, что элементы вашего списка не такие, как вы думаете. Если вы введете,
myList[0]
вы обнаружите, что первый элемент вашего списка не является двухкортежным, например('A', 1)
, а, скорее, итерируемым элементом длиной 1916.Когда у вас действительно есть список в той форме, которую вы указали в исходном вопросе (
myList = [('A',1),('B',2),...]
), все, что вам нужно сделать, это сделатьdict(myList)
.источник
[(1,2), (1,3)]
->{1:3}
ваши ключи сбиваются и информация теряется! Dict - это отношение один-к * с временем вставки / удаления O (1). Список - это список.источник
l=[('A',1), ('B',2), ('C',3), ('A', 2)]
приведет к тому,'A': 1
что это может быть не желаемым результатом.Вы пробовали это?
источник
dict([string1, string2, string3, string4])
l=[('A',1), ('B',2), ('C',3), ('A', 2)]
приведет к получению,'A': 1
что может быть не желаемым результатом.Вот способ обработки повторяющихся «ключей» кортежа:
источник
Другой способ использования словарных пониманий,
источник
Если в Tuple нет повторений ключей, это просто.
Если в кортеже есть повторения ключей.
источник
источник