You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将shelve读取的混乱字符串格式化为列表或字典

这就帮你把这组拆分混乱的印度邦与首府数据整理成规范格式,顺便附上自动处理的Python代码,以后遇到类似从shelve读取后拆分的字符串问题也能用~

整理后的印度各邦及首府信息

规范列表格式

  • Andhra Pradesh – Hyderabad (Proposed Capital: Amaravati in Guntur district. See below.)
  • Arunachal Pradesh – Itanagar
  • Assam – Dispur
  • Bihar – Patna
  • Goa – Panaji
  • Gujarat – Gandhinagar
  • Haryana – Chandigarh
  • Himachal Pradesh – Shimla
  • Jammu & Kashmir – Srinagar (Winter : Jammu)
  • Karnataka – Bangalooru

规范字典格式

indian_states_capitals = {
    "Andhra Pradesh": "Hyderabad (Proposed Capital: Amaravati in Guntur district. See below.)",
    "Arunachal Pradesh": "Itanagar",
    "Assam": "Dispur",
    "Bihar": "Patna",
    "Goa": "Panaji",
    "Gujarat": "Gandhinagar",
    "Haryana": "Chandigarh",
    "Himachal Pradesh": "Shimla",
    "Jammu & Kashmir": "Srinagar (Winter : Jammu)",
    "Karnataka": "Bangalooru"
}

自动处理混乱数据的Python代码

如果你需要批量处理这类拆分的字符串,这段代码可以自动合并不完整条目并转换为规范格式:

# 从shelve读取的原始混乱字符串列表
raw_shelve_data = [
    'Andhra Pradesh – Hyderabad (Proposed Capital: Amaravati in Guntur district. See ',
    'below.)',
    'Arunachal Pradesh – Itanagar',
    'Assam – Dispur',
    'Bihar – Patna',
    'Goa – Panaji',
    'Gujarat – Gandhinagar',
    'Haryana – Chandigarh',
    'Himachal Pradesh – Shimla',
    'Jammu & Kashmir – Srinagar (Winter : Jammu)',
    'Karnataka – Bangalooru...'
]

# 合并被拆分的条目
processed_entries = []
current_entry = ""
for segment in raw_shelve_data:
    # 判断当前片段是否是独立条目(包含分隔符" – ")
    if " – " not in segment and current_entry:
        current_entry += segment.strip()
    else:
        if current_entry:
            processed_entries.append(current_entry)
        current_entry = segment.strip()
# 处理最后一个条目,去掉末尾的省略号
if current_entry:
    processed_entries.append(current_entry.rstrip('...'))

# 转换为字典格式
state_capital_map = {}
for entry in processed_entries:
    state_name, capital_info = entry.split(" – ", 1)
    state_capital_map[state_name.strip()] = capital_info.strip()

# 输出整理后的结果
print("=== 整理后的列表 ===")
for item in processed_entries:
    print(f"- {item}")

print("\n=== 整理后的字典 ===")
for state, capital in state_capital_map.items():
    print(f"{state}: {capital}")

内容的提问来源于stack exchange,提问作者Dan Mahowny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:43:24