Python:如何将文本文件读入字典(重复,混合 upper/lower 键)
Python: how to read in text file into dictionary (repeating, mixed upper/lower keys)
我有一个如下所示的文件:
wOrd1;codeA
WORD2;codeB
woRD1;codeC
word3;codeD
...
从该文件创建像这样的字典的"pythonic"方法是什么:
{'word1':['codeA','codeC'],'word2':['codeB'],'word3':['codeD'],...}
当然,如果我有唯一的键,这会很好用:
myDict = dict(line.lower().strip().split(';', 1) for line in open("myInputFile",'r'))
修改这个声明还是写一个全新的?谢谢
您的代码是错误的,因为您从未创建相关值的列表,并且由于您传递了具有重复键的对,它只会接受第一对。
您可以使用 dict.setdefault
方法来创建合适的字典:
d={}
with open('file_name') as f:
for line in f:
w,code=line.split(';')
d.setdefault(w,[]).append(code)
我有一个如下所示的文件:
wOrd1;codeA
WORD2;codeB
woRD1;codeC
word3;codeD
...
从该文件创建像这样的字典的"pythonic"方法是什么:
{'word1':['codeA','codeC'],'word2':['codeB'],'word3':['codeD'],...}
当然,如果我有唯一的键,这会很好用:
myDict = dict(line.lower().strip().split(';', 1) for line in open("myInputFile",'r'))
修改这个声明还是写一个全新的?谢谢
您的代码是错误的,因为您从未创建相关值的列表,并且由于您传递了具有重复键的对,它只会接受第一对。
您可以使用 dict.setdefault
方法来创建合适的字典:
d={}
with open('file_name') as f:
for line in f:
w,code=line.split(';')
d.setdefault(w,[]).append(code)