abc11 bvc ex 123 456 somestuffhere
abc11 bvc ex 456 476 somestuffhere
abc12 bvc ex 173 426 somestuffhere
abc12 bvc ex 426 496 somestuffhere
abc13 bvc ex 143 796 somestuffhere
abc13 bvc ex 743 896 somestuffhere
我正在尝试将上述CSV文件作为字典{'abc11':['123','476'],'abc12':['173','496'],'abc13':['143','896']}
。我希望第0列值作为键,第三列和第四列作为值,只有当键相同时的最小值(或第三列)和最大值(或第四列)。我也不确定这些值是否作为字典中的列表是最好的,因为我需要稍后用另一个列表检查这些值。
答案 0 :(得分:1)
您可以首先构建整个字典,其中列表包含每个键的所有值。然后,一旦制作了字典,您就可以浏览每个键并获取最大和最小值。
tabItem
此外,您的上述文件不是CSV文件,CSV文件是逗号分隔文件。您的文件用空格分隔,我的代码用于由空格分隔的文件,而不是CSV。如果你真的有一个CSV文件,它很容易改变。
答案 1 :(得分:0)
你可以这样做:
d = {}
with open(file) as f:
for line in f:
if line.split()[0] not in d:
d[line.split()[0]] = [line.split()[3],line.split()[4]]
else:
d[line.split()[0]] = [min(line.split()[3],d[line.split()[0]][0]), max(line.split()[4],d[line.split()[0]][1])]