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

如何用Python列表推导式将城市列表转换为城市-州映射字典?

用推导式简化城市到州的映射

你可以用字典推导式(这是列表推导式的字典适配版本,更贴合你生成字典的需求)一步到位完成这个任务,比你原来的写法简洁太多啦。

最优解决方案(字典推导式)

直接在推导式里完成拆分和字典构建,无需中间列表:

cities = ['washington,ct', 'springfield,or', 'riverside,tx', 'franklin,vt', 'lebanon,co', 'dayton,tx', 'las vegas,nm', 'madison,ca', 'georgetown,ct', 'los angeles,tx']

city_state_map = {city: state for city, state in (item.split(',') for item in cities)}
print(city_state_map)

如果想用列表推导式过渡

如果你更习惯先通过列表推导式生成拆分后的二元组列表,再转字典,也可以这样写:

split_cities = [item.split(',') for item in cities]
city_state_map = dict(split_cities)

这比你原来的for循环+append的写法简洁多了,一行就搞定了拆分列表的生成。

代码解释

  • 不管是字典推导式还是列表推导式,核心都是遍历cities中的每个字符串,用split(',')把它拆分成(城市名, 州名)的二元组
  • 字典推导式直接将二元组的第一个元素作为键,第二个作为值,一步生成目标字典
  • 列表推导式版本则先把所有二元组收集到列表里,再用dict()函数把列表转换成字典(因为dict()可以接受由二元组组成的可迭代对象)

对比你原来的代码,推导式把循环逻辑压缩成了更紧凑、可读性更强的表达式,同时还能保持效率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:25:54