我需要将三个列表合并为一个字典。这些列表来自我格式化的txt文件,以下是该文件的一部分内容:
maker =['Horsey', 'Ford', 'Overland', 'Scripps-Booth']
year = ['1899', '1909', '1911', '1913']
model = ['Horseless', 'Model T', 'OctoAuto', 'Bi-Autogo']
Into the following:
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
我该怎么办?
values = itertools.izip(year, model)
AttributeError: 'module' object has no attribute 'izip'
,我该怎么办? - Thomas Jonesizip_longest
。 - pradyunsgitertools.izip
在 Python 2.3 中被添加,且在 Python 2.4 中进行了修改。itertools.izip_longest
是 Python 2.6 中新增的。 - Stephen Norumzip()
已经返回一个迭代器。itertools.izip_longest
也变成了itertools.zip_longest
。http://docs.python.org/3/library/functions.html#zip,http://docs.python.org/3.3/library/itertools.html#itertools.zip_longest - Stephen Norum