J'ai une liste qui ressemble à:
[('A', 1), ('B', 2), ('C', 3)]
Je veux en faire un dictionnaire qui ressemble à:
{'A': 1, 'B': 2, 'C': 3}
Quelle est la meilleure façon de procéder?
EDIT: Ma liste de tuples est en fait plus comme:
[(A, 12937012397), (BERA, 2034927830), (CE, 2349057340)]
python
list
dictionary
Fred Wilson
la source
la source
A
,B
(ouBERA
) etC
(ouCE
) vraiment? MerciRéponses:
TELLE est votre vraie question.
La réponse est que les éléments de votre liste ne sont pas ce que vous pensez qu'ils sont. Si vous tapez,
myList[0]
vous constaterez que le premier élément de votre liste n'est pas un deux-tuple, par exemple('A', 1)
, mais plutôt un itérable de longueur 1916.Une fois que vous avez réellement une liste sous la forme que vous avez indiquée dans votre question initiale (
myList = [('A',1),('B',2),...]
), tout ce que vous avez à faire estdict(myList)
.la source
[(1,2), (1,3)]
->{1:3}
clobberait vos clés et perdrait des informations! Un dict est une relation un-à-* avec un temps d'insertion / suppression O (1). La liste est une liste.la source
l=[('A',1), ('B',2), ('C',3), ('A', 2)]
cela entraînera'A': 1
ce qui peut ne pas être le résultat souhaité.Avez-vous essayé cela?
la source
dict([string1, string2, string3, string4])
l=[('A',1), ('B',2), ('C',3), ('A', 2)]
cela entraînera'A': 1
ce qui peut ne pas être le résultat souhaité.Voici un moyen de gérer les "clés" de tuple en double:
la source
Une autre façon d'utiliser la compréhension du dictionnaire,
la source
Si Tuple n'a pas de répétitions de touches, c'est Simple.
Si le tuple a des répétitions clés.
la source
la source