1
votes

Comment convertir une liste de chaînes en une liste de dictionnaire?

Je dois générer une liste de dictionnaire de paires clé / valeur à partir d'une liste de chaînes. Par exemple, j'ai une liste en tant que telle

[
{"name":"John","company":"Google","avaiable":"yes"},
{"name":"Sara","company":"TCS","avaiable":"No"},
{"name":"John","company":"facebook","avaiable":"yes"},

]

Je veux la sortie comme suit:

my_list = ["John","Google","yes","Sara","TCS","no","John","facebook","yes"]


0 commentaires

3 Réponses :


6
votes

Vous pouvez parcourir la liste en boucle. Vous pouvez faire défiler la variable à l'intérieur de votre boucle (qui va être «i» ci-dessous) de 3.

my_new_list = []
for i in range(0, len(my_list), 3):
    my_dict = {}
    my_dict['name'] = my_list[i]
    my_dict['company'] = my_list[i+1]
    my_dict['available'] = my_list[i+2]
    my_new_list.append(my_dict)


0 commentaires

2
votes

L'extrait de code ci-dessous devrait le faire pour vous. L'idée ici est de déterminer la longueur de la liste et d'utiliser la compréhension de liste pour construire un dictionnaire de listes. Les hypothèses sont:

  • La longueur de la liste est un multiple de 3
  • Tous les éléments sont dans l'ordre prévu par votre format de sortie
[{'available': 'yes', 'company': 'Google', 'name': 'John'}, {'available': 'no', 'company': 'TCS', 'name': 'Sara'}, {'available': 'yes', 'company': 'facebook', 'name': 'John'}]

my_list = ["John", "Google", "yes", "Sara", "TCS", "no", "John", "facebook", "yes"]
list_len = len(my_list)
dictionary_list = [
    {"name": my_list[i], "company": my_list[i + 1], "available": my_list[i + 2]}
    for i in range(0, list_len, 3)
]
print("dictionary list = %s" % (dictionary_list))


0 commentaires

0
votes
[
    {"name": item[0], "company": item[1], "available": item[2]}
    for item in [my_list[i : i + 3] for i in range(0, len(my_list), 3)]
]

1 commentaires

Ce serait une meilleure réponse si vous expliquiez comment le code que vous avez fourni répond à la question.