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"]
3 Réponses :
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)
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:
[{'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))
[ {"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)] ]
Ce serait une meilleure réponse si vous expliquiez comment le code que vous avez fourni répond à la question.