Python: Liste des listes de dictionnaire
J'ai un fichier qui contient des données dans le format suivant: veuillez noter que ceci est un exemple de ce à quoi il ressemble, le fichier contient plus de 2 lignes
1 30 5
2 64 4
J'ai lu dans le fichier, convertir le texte en nombres entiers, et de les stocker dans une liste. Cela se fait avec le code suivant:
file = open("dataFile.txt", "r")
items = []
for line in file:
line = map(int,line.split()) #convert the text data to integers
items.append(line) #add text data to list
Le format actuel de la liste ressemble à ceci:
[[1, 30, 5], [2, 64, 4]]
J'ai besoin de ma liste de listes dans un dictionnaire. Comment pourrait-on faire?
Dictionnaire de la clé devrait être le premier élément
Que voulez-vous le dictionnaire de la clé?
Dictionnaire de quoi?
Dans votre exemple, écrivez ce que le résultat final devrait être. La seule chose que je peux penser à est de
J'ai le sentiment que cela va se transformer en un problème qui a besoin d'un namedtuple ou OrderedDict
Dictionnaire de quoi?
Dans votre exemple, écrivez ce que le résultat final devrait être. La seule chose que je peux penser à est de
{1: [30, 5], 2: [64, 4]}
... mais qui a ses problèmes, par exemple, que si il y a deux lignes à partir du numéro 1? BTW, pourquoi voulez-vous un dictionnaire en premier lieu? Quel est le problème avec une liste de listes de nombres stockés en tant que liste de listes de nombres?J'ai le sentiment que cela va se transformer en un problème qui a besoin d'un namedtuple ou OrderedDict
OriginalL'auteur JustAskingThings | 2015-12-10
Vous devez vous connecter pour publier un commentaire.
Je vais jouer à deviner ce que vous voulez, et d'assumer les premiers chiffres de chaque ligne sont en fait une sorte de séquentiel d'identification, et que vous voulez
pour devenir
donc...
(et j'ai changé le nom de
file
parce quefile()
est déjà un builtin fonction en Python, et la réutilisation de ce nom pour quelque chose d'autre est mauvais).Ou vous pouvez utiliser un dictionnaire, la compréhension au lieu de cela, commencer avec votre liste d'articles:
OriginalL'auteur TessellatingHeckler
En supposant que vous voulez que votre clé de dictionnaire pour être le 1er élément de la liste, voici une mise en œuvre:
Il fonctionne en parcourant
list
, et la sous-listel2
. Ensuite, je prends le 1er élément del2
et l'affecter en tant que clé dedict
, puis prendre le reste des éléments del2
et le mettre comme valeur.Le résultat est fini dictionnaire
{1: [30, 5], 2: [64, 4]}
Non, c'est un n-uplet. Les dictionnaires ont une paire clé-valeur, comme une table de hachage. Aussi, quel est votre clé dans le programme? Première valeur?
comment voulez-vous mettre en œuvre un tuple? Correct, ma clé est la première valeur qui correspond à un ID
Pour déclarer un tuple, vous venez de le faire
tuple = ( (1, 30, 5), (2, 64, 4) )
, mais si vous voulez changer de liste -> n-uplet, alors vous avez besoin d'une boucle for en plus d'appelertuple(list)
pour convertir le 2nd degré de listes de n-uplets.Actuellement, j'ai pu trouver implementaion de 1D liste de tuple: stackoverflow.com/questions/12836128/..., mais désolé, je ne sais pas comment la mettre en 2D conversions 🙁 ...
OriginalL'auteur Patrick Yu