-1
votes

Transcrire une liste de dictionnaires

J'ai ce genre de liste de la liste du dictionnaire de Python xxx

que j'aimerais transformer dans ce type de liste de la liste du dictionnaire xxx


3 commentaires

Qu'avez-vous essayé et quel est le problème avec cela? Notez également que votre sortie est une chaîne de mappage dictionnaire des dictionnaires, pas une liste de la liste des dictionnaires.


Alors qu'avez-vous essayé? Cela semble assez facile, il suffit de sortir le d ['comptoria'] à partir de chaque élément de la liste et de créer un dictionnaire avec lui et avec le reste des paires de la valeur clé étant son contenu.


Oui, je suis très noob avec ces problèmes. Merci


7 Réponses :


2
votes

Vous pouvez créer un dictionnaire en itérant sur les éléments de votre liste d'origine. En supposant que votre liste soit appelée car_list : xxx


1 commentaires

Merci, je travaille, du livre ou du papier qui traite de ces problèmes, je suis très nouveau.



3
votes

Nous pouvons utiliser la compréhension dict xxx

c est votre donnée d'origine


0 commentaires

1
votes

Assumer que votre liste est appelée l , vous pouvez accomplir cela à l'aide d'une itération simple et de construire un nouveau dictionnaire d : xxx

ceci produit dans le dictionnaire d : xxx

explication: pour chaque dictionnaire de cette liste ( sous ): SUB.POP ('COMPLANIA') Supprime la saisie de la touche "compagnon" dans "code> sous et retourne sa valeur associée. Nous mettons ensuite à jour le dictionnaire d pour avoir une clé de ce qui venait de retourner et nous associe à cette clé, le reste de sous après la suppression de cette entrée. < / p>


2 commentaires

Pourquoi utiliseriez-vous une opération destructive comme .pop ici? Y a-t-il un avantage? En général, à moins que vous n'essayiez de supprimer les choses, je voudrais vous tromper du côté de pas enlever les choses.


@ Juanpa.arrivillaga Tout simplement parce que POP retourne succinctement la clé que nous souhaitons pour le nouveau dictionnaire, et après sa réalisation, laisse derrière lui que la valeur associée à cette clé devrait être. Je vois où tu viens de :)



0
votes

avec une fonction de mappeuse pour renvoyer une nouvelle liste personnalisée de DICTS

a=[
  {
    "compania": "Fiat",
    "modelo": "2014",    
    "precio": "1000"
  },
  {
    "compania": "Renault",
    "modelo": "2014",    
    "precio": "2000"
  },
  {
    "compania": "Volkwagen",
    "modelo": "2014",    
    "precio": "3000"
  },
  {
    "compania": "Chevrolet",
     "modelo": "2014",    
     "precio": "1000"    
  },
  {
    "compania": "Peugeot",
    "modelo": "2014",    
    "precio": "2000"
  } 
]  

def mapper(temp): # define a mapper
    new_temp={}
    new_temp[temp['compania']]={k:v for k,v in temp.items() if k!='compania'}
    return new_temp

map(mapper,a) # call map function with mapper and list as argument


0 commentaires

0
votes
{'Chevrolet': {'modelo': '2014', 'precio': '1000'},
 'Fiat': {'modelo': '2014', 'precio': '1000'},
 'Peugeot': {'modelo': '2014', 'precio': '2000'},
 'Renault': {'modelo': '2014', 'precio': '2000'},
 'Volkwagen': {'modelo': '2014', 'precio': '3000'}}

0 commentaires

0
votes

Je partagerais une solution simple: xxx


2 commentaires

N'utilisez pas .pop dans une construction de compréhension, il a un effet secondaire et éviter les effets secondaires dans des constructions fonctionnelles.


Précisément parce que la solution utilise un effet secondaire, il est court dans ce cas particulier.



0
votes

Vous pouvez simplement utiliser le dictionnaire Mise à jour qui peut alors produire un nouveau dictionnaire de votre préférence. xxx

OUPUT: xxx


0 commentaires