我需要將三個列表合併到一個字典中。這些列表是從閱讀我格式化的txt文件,並在這裏是從該文件中的一個片段:將三個列表合併爲一個字典
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(year,model)' 'AttributeError:'module'object has no attribute'izip''我該怎麼辦? –
@ThomasJones它是'izip_longest' – pradyunsg
@ThomasJones你使用的是什麼版本的Python? 'itertools.izip'是在Python 2.3中添加的,並在Python 2.4中進行了修改。 'itertools.izip_longest'在Python 2.6中是新的。 –