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

如何将字符串与元组组成的列表转换为Python字典?

解决方案

你的原始列表是成对出现的(地点名称 + 经纬度元组),以下两种方法可以快速生成目标字典:

方法1:简洁一行式(推荐)

利用Python切片和zip()函数直接转换:

original_list = ['Kaivopuisto', ('24.950292890004903', '60.155444793742276'), 'Laivasillankatu', ('24.956347471358754', '60.160959093887129'), 'Kapteeninpuistikko', ('24.944927399779715', '60.158189199971673'), 'Viiskulma', ('24.941775800312996', '60.16098589997938'), 'Sepankatu', ('24.93628529982675', '60.157948300373846'), 'Hietalahdentori', ('24.929709900391629', '60.162225100108344'), 'Designmuseo', ('24.945959999554361', '60.163103199952786'), 'Vanha kirkkopuisto', ('24.939149900447603', '60.165288299815245'), 'Erottajan aukio', ('24.944134928883898', '60.166911666939939')]

location_dict = dict(zip(original_list[::2], original_list[1::2]))

核心逻辑:

  • original_list[::2]:从索引0开始,每隔2个元素取一个,得到所有地点名称的子列表
  • original_list[1::2]:从索引1开始,每隔2个元素取一个,得到所有经纬度元组的子列表
  • zip():将两个子列表对应位置的元素配对成(键, 值)元组
  • dict():把配对后的元组直接转换成字典

方法2:基础for循环(适合理解底层逻辑)

如果觉得一行式太抽象,用循环逐个添加键值对:

location_dict = {}
# 遍历所有地点名的索引(0、2、4...)
for i in range(0, len(original_list), 2):
    # 取当前索引的地点名作为键,下一个索引的元组作为值
    location_dict[original_list[i]] = original_list[i+1]

核心逻辑:

  • range(0, len(original_list), 2):生成步长为2的索引序列,精准定位所有地点名的位置
  • 每次循环将original_list[i](地点名)和original_list[i+1](经纬度)作为键值对存入字典

内容的提问来源于stack exchange,提问作者John Fox

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 18:13:19