我有一个txt文件,我需要提取一些值并将其组织为字典。
这是需要的格式! {State: Town}
在将已清理的数据附加到字典时获取重复值
例如{'Alabama': 'Auburn', Alabama: 'Florence'....'Wyoming': 'Laramie'}
这里是我的代码:
with open('my.txt') as file:
output = []
current_state = ""
region = ""
for line in file:
if (len(line.split("[edit]")) == 2):
current_state = line.split("[edit]")[0]
else:
region = line.split(" (")[0]
if (region != ""):
output.append([current_state, region])
return output
但是,我的代码不会做我想做的事情。这感觉是因为我存储先前提取的“区域”值并将其附加到下一个状态。所以逻辑有问题,我不确定究竟是什么。
[['Alabama', 'Auburn'],
['Alabama', 'Florence'],
['Alabama', 'Jacksonville'],
['Alabama', 'Livingston'],
['Alabama', 'Montevallo'],
['Alabama', 'Troy'],
['Alabama', 'Tuscaloosa'],
['Alabama', 'Tuskegee'],
['Alaska', 'Tuskegee'],
['Alaska', 'Fairbanks'],
['Arizona', 'Fairbanks'],
['Arizona', 'Flagstaff'],
['Arizona', 'Tempe'],
['Arizona', 'Tucson'],...]
正如你可以看到我得到“费尔班克斯” 2次,第一次是附加到阿拉斯加,这是正确的,第二是越来越追加到亚利桑那州,这是不正确的。我有这种情况发生在我所有的州。
...
['Alaska', 'Fairbanks'],
['Arizona', 'Fairbanks'],
...
['Wisconsin', 'Whitewater'],
['Wyoming', 'Whitewater'],
['Wyoming', 'Laramie']]
您正在使用列表,而不是字典。列表使用方括号'[...]',字符串使用大括号'{...}' –