我有一个数据列表,它们的格式是这样的:(下面有更多的行只是它们的一部分)
2 377222 TOYOTA MOTOR CORPORATION TOYOTA PASEO 1994 Y 19941226 N 0 0 PARKING BRAKE:CONVENTIONAL SAN JOSE CA JT2EL45U5R0 19950103 19950103 1 PARKED ON FLAT SURFACE EMERGENCY BRAKING ENGAGED VEHICLE ROLLED REARWARD. TT EVOQ V
1 958164 TOYOTA MOTOR CORPORATION TOYOTA LAND CRUISER 1994 19941223 N 0 0 SERVICE BRAKES, HYDRAULIC:ANTILOCK ARNOLD CA JT3DJ81W8R0 19950103 19950103 ABS SYSTEM FAILURE, AT 20MPH. TT EVOQ V
46 958153 DAIMLERCHRYSLER CORPORATION DODGE CARAVAN 1987 19940901 N 0 0 EQUIPMENT:MECHANICAL:CARRIER/RACK CORBETT OR 2B4FK4130HR 19950103 19950103 1 CABLE ATTACHMENT THAT SECURES THE SPARE TIRE BROKE WHILE DRIVING. TT EVOQ V
98 958178 GENERAL MOTORS CORP. GMC SAFARI 1994 19941223 N 0 0 SERVICE BRAKES, HYDRAULIC:FOUNDATION COMPONENTS MILAN MI 1GDDM19W4RB 19950103 19950103 1 BRAKES FAILED DUE TO BATTERY MALFUNCTIONING WHEN TOO MUCH POWER WAS DRAWN FROM BATTERY FOR RADIO. TT EVOQ V
使用索引(1)整数作为键,句子中任何其他2个元素的元组作为值来创建字典的最佳方法是什么?所需输出应如下所示:
^{pr2}$这是我现在所拥有的,我试图先把它们放到字典中,但是它不会遍历整个列表,而是返回一行的元素。我的代码出了什么问题?或者我如何至少完成第一步——把它们都放进字典里?在
def function(filename):
with open filename as FileObject:
A=[]
for lines in FileObject:
B=[line.split("\t")[0]]
A+=B
C=[line.split("\t")[2]]
A=A+B+C
D=[line.split("\t")[12]]
A=A+B+C+D
E={A:(B,C,D)for A in A}
return E
print function(filename)
通过使用
csv
模块(可用于处理制表符分隔的文件)和可能的operator.itemgetter
作为一个方便函数。在每次通过循环(
E={A:(B,C,D)for A in A}
)创建一个新字典(而不是添加到其中)。在进入循环之前声明字典,并在每次循环中添加条目。在相关问题 更多 >
编程相关推荐