我是一个相当新的编码和有这个问题的麻烦-原谅我,如果我的任何一个vocab是关闭。我有一个以制表符分隔的文本文件,有多个列,如下所示
Cat 2 32
Dog 5 56
Bird 10 234
Dog 2 23
Alligator 2 94
Cat 10 34
Tiger 2 973
Bird 2 355
我想使用第一列作为键,第二列作为值。如果有一个键的重复,我希望字典在文本文件中存储最高的值。例如,我想要Cat:10
和Dog:5
作为key:value
对
我打开了这个文件并创建了一个字典,其中第一列是键,第二列是值。根据Shizzen83的超级有用建议,我更新了:
animals = '/path/animals.txt'
file = open(animals, mode='r')
top_scores = dict()
for line in file :
goodline = line.rstrip('\r\n')
data = goodline.split("\t")
top_scores[data[0]] = max(top_scores.setdefault(data[0], data[1]), data[1])
print(top_scores)
然后输出变为:
{'Alligator': '2', 'Tiger': '2', 'Bird': '2', 'Dog': '5', 'Cat': '2'}
然而,期望的输出是:
{'Alligator': '2', 'Tiger': '2', 'Bird': '10', 'Dog': '5', 'Cat': '10'}
任何帮助,使它保存在一个给定的密钥文件中的最高值将不胜感激
您可以利用dictionary类的
setdefault
方法,它获取与键关联的值,如果找不到键,则设置一个默认值。顺便说一句,你不必检查自己是否有钥匙相关问题 更多 >
编程相关推荐