昨日こんな質問した
一番の答えは、私が必要としていたもので最も正しかった
しかし、MY automobile.txt file
をもう一度見てみると、 2つのことに気づきました。
リストには複数の自動車メーカーがあり、それぞれ1 つだけがリストされています。
すべてのデータは適切に配置されていないようですが、いくつかあります。
私はとても近くにいますが、これまでのところです。
これが私が持っているものです
違いがある場合は注意してください。これは.txt
、追加したファイルから読み取られ、データを 3 つのリストに分割しています。データがあることは知っています。私がチェックしました。
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}
ヘルプやガイダンスをいただければ幸いです。