我昨天问了这个问题
第一个答案是我需要的最正确的
但重新审视我的我 automobile.txt file
,我意识到了两件事。
它在列表中有多家汽车制造商,并且每家都只列出了一家。
每个数据似乎都是不合适的,但只有少数。
我很近,但很远。
这是我所拥有的
请注意是否有所不同这是从.txt
我附加的文件中读取的,并将数据拆分为三个列表。我知道数据在那里。我检查了。
from pprint import pprint
import string
import re
data_file = open("Automobil.txt", 'r')
try:
from itertools import izip_longest
zip_longest = izip_longest
except ImportError:
from itertools import zip_longest
def formatting_list(data_file):
year = []
maker = []
model = []
for line in data_file:
maker = (' '.join(line.split()[1:2]))
year = (' '.join(line.split()[0:1]))
model = ((' '.join(line.split()[2:])))
return maker,year,model
def car_data_merge(maker,year,model):
#This was the one suggested to me that I liked
car_dict_longest = {mk: (yr, md) for mk, yr, md in zip_longest(maker,year,model)}
pprint(car_dict_longest)
这类似于我尝试过的其他人在另一页上向我展示的内容
car_dict = {maker: (year, model) for maker, model, year in zip(car_maker,car_model,car_year)}
print(car_dict)
在阅读了它的用途izip
以及它与zip
我认为 izip 将所有内容都保留在原处,而不是临时元组。
.txt
这是我认为问题所在列表的一小部分:
year = [1958,1909,1958,1958, 1961, 1961]
maker = [Ford,Ford,Lotus,MGA, Amphicar, Corvair]
model = [Edsel,Model T,Elite,Twin Cam]
当运行这是应该发生的事情
Ford: {1958 , Edsel}, Ford: {1909, Model T}, Lotus: {1958, Elite}, MGA :{1958, Twin Cam}, Amphicar:{1961}, Corvair:{1961}
相反,我得到类似的东西:
Ford: {1958 , Edsel}, Lotus: {1958, MGA}, Amphicar:{1961, Corvair}
任何帮助或指导将不胜感激。