J'ai trois listes, la première est une liste de noms, la seconde est une liste de dictionnaires et la troisième est une liste de données. Chaque position dans une liste correspond aux mêmes positions dans les autres listes. List_1 [0] a les données correspondantes dans List_2 [0] et List_3 [0], etc. Je voudrais transformer ces trois listes en un dictionnaire dans un dictionnaire, avec les valeurs dans List_1 étant les clés primaires. Comment puis-je faire cela tout en gardant tout en ordre?Concaténation de dictionnaires
6
A
Répondre
13
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> c = [7,8,9]
>>> dict(zip(a, zip(b, c)))
{1: (4, 7), 2: (5, 8), 3: (6, 9)}
Voir la documentation pour plus d'informations sur zip
. Comme le souligne le lionbest ci-dessous, vous pouvez regarder itertools.izip()
si vos données d'entrée sont grandes. izip
fait essentiellement la même chose que zip
, mais il crée des itérateurs au lieu de listes. De cette façon, vous ne créez pas de grandes listes temporaires avant de créer le dictionnaire.
1
Python 3:
combined = {name:dict(data1=List_2[i], data2=List_3[i]) for i, name in enumerate(List_1)}
Python 2.5: si l'ordre de ces questions de choses, vous ne devriez pas utiliser un dictionnaire
combined = {}
for i, name in enumerate(List_1):
combined[name] = dict(data1=List_2[i], data2=List_3[i])
0
. par définition, ils sont non ordonnés. vous pouvez utiliser l'un des many ordered_dictionary implementations flottant autour, ou attendre python 2.7 ou 3.1 qui inclura une implémentation de dictionnaire ordonnée dans le module de collections.
Questions connexes
- 1. Concaténation de chaînes
- 2. Chaînes de concaténation SQL?
- 3. Groovy Concaténation
- 4. PostgreSQL concaténation
- 5. Concaténation de bits en VHDL
- 6. Concaténation de chaînes dans Lua
- 7. Polymorphisme avec les dictionnaires
- 8. dictionnaires en Python Comparaison
- 9. Chaîne de concaténation VS format de chaîne
- 10. Combinaison de dictionnaires de listes en Python
- 11. Concaténation Environment.CurrentDirectory avec chemin de retour
- 12. Chaîne de concaténation vs String Builder. Performance
- 13. Pourquoi plus de variables longues provoquent concaténation?
- 14. asp.net meilleure pratique concaténation de chaîne
- 15. Création de dictionnaires avec des clés prédéfinies
- 16. Utilisation de Lambda avec des dictionnaires
- 17. Dictionnaires de mappage contenant une liste
- 18. Accéder à un tableau de dictionnaires?
- 19. Itérer sur les dictionnaires VBA?
- 20. Dictionnaires faibles en Objective-C
- 21. Filtrer les dictionnaires et créer des sous-dictionnaires basés sur des clés/valeurs en Python?
- 22. Concaténation contenu NSArray avec NSMutableString appendString
- 23. MISE A JOUR utilisant deux tables, Concaténation
- 24. T-SQL While Loop et concaténation
- 25. Concaténation de lignes de différentes tables dans un même champ
- 26. VS 2008 IntelliSense pour C# dictionnaires statiques
- 27. méthode d'extension pour le dictionnaire des dictionnaires
- 28. .NET - Données JSON - Désérialisation - Listes et dictionnaires
- 29. WPF - Effacement de certains dictionnaires de ressources uniquement
- 30. Concaténation de chaîne lente sur une grande entrée
Si a, b, c sera énorme, je recommande izip du module itertools. – Arpegius
@lionbest: Bon point, j'ai ajouté ça. – balpha