#python #python-3.x #dictionary
Вопрос:
У меня есть список ценностей
list = ["apple","red","oranges","orange","grapes","purple"]
и список столбцов:
columns = ["fruit","color"]
Я хотел бы создать объединенный словарь вместе, чтобы он выглядел так
["fruit": "apple", "colour": "red"]
["fruit": "oranges", "colour": "orange"]
["fruit": "grapes", "colour": "purple"]
empty_item = dict([(i, None) for i in columns])
item = empty_item
for x in range(item):
У меня есть следующий приведенный выше код, но я не могу понять остальное
Редактировать —
Спасибо за приведенные ниже решения, они сработали, но я хочу разделить свои объединенные словари на все отдельные строки, так что
["fruit": "apple", "colour": "red"] -- (separate line, line 1)
["fruit": "oranges", "colour": "orange"] -- (separate line, line 2)
["fruit": "grapes", "colour": "purple"] -- (separate line, line 3)
Комментарии:
1. это неправильный синтаксис словаря, также не называйте список «списком».
Ответ №1:
Вы можете использовать понимание словаря в понимании списка, например:
l = ["apple","red","oranges","orange","grapes","purple"]
columns = ["fruit","color"]
colLen = len(columns)
res = [{columns[j]: l[i * colLen j] for j in range(colLen)}
for i in range(len(l) // colLen)]
print(res)
# [{'fruit': 'apple', 'color': 'red'}, {'fruit': 'oranges', 'color': 'orange'}, {'fruit': 'grapes', 'color': 'purple'}]
Ответ №2:
Желаемый результат — неправильный синтаксис. Я предполагаю, что вам нужен список словарей в этом формате. Приведенный ниже код сделает свое дело.
lst = ["apple","red","oranges","orange","grapes","purple"]
columns = ["fruit","color"]
lstDicts = [{columns[0]:fruit,columns[1]:color} for fruit, color in zip(*[iter(lst)]*2)]
код перебирает lst
два элемента за раз, присваивая первому элементу fruit
, а второму color
-. Также мы можем реализовать понимание списка для создания списка словарей.
выход
[{'fruit': 'apple', 'color': 'red'},
{'fruit': 'oranges', 'color': 'orange'},
{'fruit': 'grapes', 'color': 'purple'}]
Ответ №3:
Гораздо лучшее решение, которое заставит вас плакать от радости:
values = ["apple","red","oranges","orange","grapes","purple"]
columns = ["fruit","color"]
print([{key: value for key, value in zip(columns, pair)}
for pair in zip(values[:-1:2], values[1::2])])