Eu tenho uma lista que se parece com:
[('A', 1), ('B', 2), ('C', 3)]
Quero transformá-lo em um dicionário que se parece com:
{'A': 1, 'B': 2, 'C': 3}
Qual é a melhor maneira de fazer isso?
Edição: minha lista de tuplas é realmente mais como:
[(A, 12937012397), (BERA, 2034927830), (CE, 2349057340)]
python
list
dictionary
Fred Wilson
fonte
fonte
A
,B
(ouBERA
) eC
(ouCE
) são realmente? ObrigadoRespostas:
Essa é a sua pergunta real .
A resposta é que os elementos da sua lista não são o que você pensa que são. Se você digitar
myList[0]
, descobrirá que o primeiro elemento da sua lista não é uma tupla dupla, por exemplo('A', 1)
, mas sim uma iterável de 1916.Depois de realmente ter uma lista no formulário que você declarou em sua pergunta original (
myList = [('A',1),('B',2),...]
), tudo que você precisa fazer édict(myList)
.fonte
[(1,2), (1,3)]
->{1:3}
iria bater suas chaves e perder informações! Um ditado é uma relação um-para-* com O (1) tempo de inserção / exclusão. Lista é uma lista.fonte
l=[('A',1), ('B',2), ('C',3), ('A', 2)]
resultará em uma'A': 1
que pode não ser o resultado desejado.Você já tentou isso?
fonte
dict([string1, string2, string3, string4])
l=[('A',1), ('B',2), ('C',3), ('A', 2)]
resultará em um'A': 1
que pode não ser o resultado desejado.Aqui está uma maneira de lidar com "chaves" de tupla duplicadas:
fonte
Outra maneira de usar a compreensão de dicionário,
fonte
Se a Tupla não tiver repetições de teclas, é Simples.
Se a tupla tiver repetições de teclas.
fonte
fonte