0
votes

Comment créer un dictionnaire d'éléments dans un format spécifique?

J'ai une liste dans Python appelée itemlist qui contient des données telles que les données suivantes: xxx pré>

Je souhaite stocker ces informations dans la liste dans un dictionnaire dans le format suivant: p>

{
   "Characteristic": "Soil",
   "Info": "ToRead"
},
{
   "Characteristic": "Temperature",
   "Info": "ToRead"
},
...


2 commentaires

Où est ton code?


Je recommande vivement d'utiliser l'une des solutions basées sur la compréhension de liste fournies au lieu de la boucle.


6 Réponses :


1
votes

Utiliser dict à l'intérieur d'une compréhension de la liste

ex: xxx

Sortie: xxx


1 commentaires

Les littéraux dictés sont également valables, pas besoin d'utiliser le constructeur



0
votes

Vous pouvez utiliser une liste de compréhension avec des littéraux dictionnaires imbriqués pour créer les données ... xxx pré>

... puis utilisez json.dump code> ou décharge code> pour le jeter dans un fichier ou jolie-impression. P>

>>> import json                                                            
>>> print(json.dumps(d, indent=2))                                         
[
  {
    "Characteristic": "Soil",
    "Info": "ToRead"
  },
  {
    "Characteristic": "Temperature",
    "Info": "ToRead"
  },
  {
    "Characteristic": "Humidity",
    "Info": "ToRead"
  }
]


3 commentaires

@Adirio d'accord, parlant strictement sa compréhension de liste avec des littéraux dict à l'intérieur, pas une liste mixte et une copmréhension dict. Et dans votre monde, cela vaut la peine de savoir?


@Adirio Cela implique que, en commentant simplement sur cette question mineure, je ne l'aurais pas réparé. IMHO, les bowvotes devraient être réservés aux réponses factuellement fausses (d'une manière qui compte) ou autrement pas utile, par exemple. manque le problème réel.


Vous pouvez utiliser l'outil Downvote, mais vous le souhaitez, mais l'utiliser un outil de pression pour que les autres correctent leur réponse vous semble complètement légitime. Et vous avez répondu a été fausse factuellement, l'importance de l'erreur est alors subjétive.



1
votes

Réponse courte: dictlist = [{"caractéristique": élément, "info": "toread"} pour l'élément dans itemList]

une compréhension de la liste qui itière sur la liste des articles et crée la dicte souhaitée pour chaque élément. Simple, un doublon, pythonique, explicite, pas beaucoup plus à dire à ce sujet.


0 commentaires

1
votes

Si vous souhaitez créer une liste de dictts, cela est facilement effectué avec A pour une boucle.

[{'Characteristic': 'Soil', 'Info': 'ToRead'}, {'Characteristic': 'Temperature', 'Info': 'ToRead'}, {'Characteristic': 'Humidity', 'Info': 'ToRead'}]


0 commentaires

0
votes
itemList = ['Soil', 'Temperature', 'Humidity']

data = []


for item in itemList:
    data.append({
        "Characteristic": item,
        "Info": "ToRead"
    })

print(str(data))


0 commentaires

0
votes

Vous pouvez essayer quelque chose comme ceci:

dicts = []
for item in itemList[:]:
    newDict = {"Item:item, "Info":"toRead"}
    dicts.append(newDict)


0 commentaires