Мне нужно объединить три списка в один словарь. Эти списки от чтения текстового файла, который я отформатированный, и вот фрагмент из этого файла:Слияние трех списков в один словарь
maker =['Horsey', 'Ford', 'Overland', 'Scripps-Booth']
year = ['1899', '1909', '1911', '1913']
model = ['Horseless', 'Model T', 'OctoAuto', 'Bi-Autogo']
В следующем:
car_dict = {'Horsey':1899,'Horseless','Ford':1909,'Model T','Overland' : 1911, 'OctoAuto', 'Scripps-Booth' : 1913, 'Bi-Autogo'}
Вот что я сделал:
def car_data_merge(car_maker,car_model,car_year):
car_dict = {}
car_merge = []
car_dict = defaultdict(partial(defaultdict,list))
for (car_maker,car_model,car_year) in zip(car_maker,car_model,car_year):
car_dict[car_year][car_model].append(car_maker)
print(car_dict)
Когда я ввожу это, я получаю:
{'Horsey': defaultdict(<class 'list'>, {'1899': ['Horseless']})
Не все данные из списка показаны, и я не хочу показывать defaultdict
.
Когда я попробовал следующее:
def car_data_merge(car_maker,car_data):
car_dict = {}
car_merge = []
car_merge = zip(car_maker,car_data)
car_dict = dict(car_merge)
print(car_dict)
### car_data holds both year and model ####
только часть данных показывает вверх:
'Horsey':'Horseless',':1909,'Model T
Что я должен делать?
Вопрос: Я раньше не использовал izip, и я получаю 'values = itertools.izip (год, модель)' 'Объект 'AttributeError:' module 'не имеет атрибута' izip'', что мне делать? –
@ThomasJones Это 'izip_longest' – pradyunsg
@ThomasJones Какую версию Python вы используете? 'itertools.izip' был добавлен в Python 2.3 и изменен в Python 2.4. 'itertools.izip_longest' является новым в Python 2.6. –