我有一个文本文件,其内容如下:
State Texas
Austin
Houston
Dallas
State Florida
Orlando
Miami
Jacksonville
Naples
!
State California
San Diego
Los Angeles
San Francisco
目标:我想从这个文本文件中阅读并把它们变成字典,应该是这样的-
state_dict = {
'Texas': ['Austin', 'Houston', 'Dallas'],
'Florida': ['Orlando', 'Miami', 'Jacksonville', 'Naples'],
'California': ['San Diego', 'Los Angeles', 'San Francisco']
}
到目前为止,我的代码是:
State_Dict = {}
with open('state.txt', 'r') as main_fd:
for mystate in main_fd:
mystate = mystate.lstrip()
if ("State" in mystate):
state_key = "_".join(mystate.split()[1:])
State_Dict[state_key] = []
for cities in main_fd:
if ("!" in cities):
break
else:
State_Dict[state_key].append(cities.rstrip())
print(State_Dict)
但结果是:
{
'Texas': [
' Austin', ' Houston', ' Dallas',
'State Florida', ' Orlando', ' Miami',
' Jacksonville', ' Naples'
],
'California': [
' San Diego', ' Los Angeles', ' San Francisco'
]
}
我该怎么解决这个问题?你知道吗
你的代码的问题是,你停止寻找一个州的城市时,你发生“!”但城市的新部分也用以“州”开头的线表示。 另一个错误是,您每次从一开始就迭代城市,而不是当前所在的州。你知道吗
输出:
你要找的是这样的东西。 考虑循环一次遍历一行,并为您的条件构建一系列检查。如果这不起作用,让我知道,没有测试就写了。你知道吗
相关问题 更多 >
编程相关推荐