回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个文本文件,其中的行有两列(由制表符分隔)。我想打开这个文件并输出一个字典,将第一列存储为键,然后将第二列存储为值。但我很难处理具有不同值的键(如下面的<code>Camiguin</code>):</p>
<pre>
Sandingan Loon, Bohol
Pangangan Calape, Bohol
Limasawa Limasawa, Southern Leyte
Catalat San Vicente, Palawan
Camiguin Catarman, Camiguin
Camiguin Guinsiliban, Camiguin
Camiguin Mahinog, Camiguin
Camiguin Mambajao, Camiguin
Camiguin Sagay, Camiguin
Rasa Narra, Palawan
</pre>
<p>我使用的代码是:</p>
<pre><code>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)
</code></pre>
<p>我得到的结果是这样的(注意<code>Camiguin</code>的结果,它只是将这些值串联在一起。我可能需要使用一个列表,但我不知道如何:</p>
<pre><code>{'Limasawa': 'Limasawa, Southern Leyte', 'Rasa': 'Narra, Palawan', 'Catalat': 'San Vicente, Palawan', 'Camiguin': 'Catarman, CamiguinGuinsiliban, CamiguinMahinog, CamiguinMambajao, CamiguinSagay, Camiguin', 'Pangangan': 'Calape, Bohol', 'Sandingan': 'Loon, Bohol'}
</code></pre>
<p>编辑:我想要的输出应该是这样的:</p>
<pre><code>{'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'}
</code></pre>