我有一个文本文件,其中的行有两列(由制表符分隔)。我想打开此文件并输出字典,将第一列存储为键,然后将第二列存储为值。但是我很难处理具有不同值的键(例如下面的Camiguin
):
薄荷岛三丁岸龙薄荷岛Pangangan Calape利马萨利马萨,南莱特巴拉望卡塔拉特圣维森特酒店卡米金·卡塔曼(Camiguin Catarman)甘米银Guinsiliban,甘米银卡米金(Camiguin Mahinog)甘米银甘米银Camiguin Sagay,卡米金巴拉望Rasa Narra
我使用的代码是:
filesDir = "C:\Users\user\Desktop"
fhand = open(filesDir+"\input.txt")
fout = open(filesDir+"output.txt","w")
d = dict()
for line in fhand:
x = line.rstrip("\n")
x = x.split("\t")
if x[0] not in d:
d[x[0]] = x[1]
else:
d[x[0]] += x[1]
continue
print(d)
我得到的结果是这个(请注意,Camiguin
的结果只是将值连接在一起。我可能需要使用一个列表,但我无法弄清楚该怎么做:]]
{'Limasawa': 'Limasawa, Southern Leyte', 'Rasa': 'Narra, Palawan', 'Catalat': 'San Vicente, Palawan', 'Camiguin': 'Catarman, CamiguinGuinsiliban, CamiguinMahinog, CamiguinMambajao, CamiguinSagay, Camiguin', 'Pangangan': 'Calape, Bohol', 'Sandingan': 'Loon, Bohol'}
编辑:我想要的输出应该是这样的:
{'Limasawa': 'Limasawa, Southern Leyte', 'Rasa': 'Narra, Palawan', 'Catalat': 'San Vicente, Palawan', 'Camiguin': ['Catarman, Camiguin','Guinsiliban, Camiguin','Mahinog, Camiguin','Mambajao, Camiguin','Sagay, Camiguin'], 'Pangangan': 'Calape, Bohol', 'Sandingan': 'Loon, Bohol'}
我有一个文本文件,其中的行有两列(由制表符分隔)。我想打开此文件并输出字典,将第一列存储为键,然后将第二列存储为值。但是我是...
代替使用字典,使用defaultdict,然后您可以随时添加
使用dict.setdefault
在您的else循环下,您可以检查分配给该键的值的类型。如果类型是字符串,则将其替换为包含当前字符串和新值的列表。如果该值已经是列表,则将新值附加到该列表。