我有一个如下所示的文本文件:
tomato 7000
potato and pear 8000
prunes 892
tomato 8
carrot 600
prunes 3
为了把它变成一本忽略有更多单词的行的词典(这是我想要的,所以potato and pear
被忽略,这很好),我写道:
with open("C:\\path\\food.txt", encoding="utf-8") as f_skipped:
result = {}
for line in f_skipped:
try:
k, v = line.split()
except ValueError:
pass
else:
result[k] = v
但是因为不能有重复的键,所以它采用后面出现的值,所以tomato
和prunes
分别有值8
和3
。有没有办法只接受第一次出现而忽略后一次出现
我想保留我的代码,只是把文本转过来(听起来有点傻),或者检测是否有重复的单词(后者有点危险,因为有很多行有很多单词,我只是想忽略它们)
试试这个
.get(key)
方法,如果键没有退出,字典将返回None
,否则返回键的值。因此,您可以在if条件下使用它。 通过阅读你的问题,我希望这就是你想要的输出
试试这个:-
相关问题 更多 >
编程相关推荐