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

如何用For循环从字典列表生成指定格式的城市名称列表?

问题:如何生成城市名称列表并输出指定格式?

原始城市数据

cities = [{'City': 'Buenos Aires',
  'Country': 'Argentina',
  'Population': 2891000,
  'Area': 4758},
 {'City': 'Toronto', 'Country': 'Canada', 'Population': 2800000, 'Area': 2731},
 {'City': 'Pyeongchang',
  'Country': 'South Korea',
  'Population': 2581000,
  'Area': 3194},
 {'City': 'Marakesh', 'Country': 'Morocco', 'Population': 928850, 'Area': 200},
 {'City': 'Albuquerque',
  'Country': 'New Mexico',
  'Population': 559277,
  'Area': 491},
 {'City': 'Los Cabos',
  'Country': 'Mexico',
  'Population': 287651,
  'Area': 3750},
 {'City': 'Greenville', 'Country': 'USA', 'Population': 84554, 'Area': 68},
 {'City': 'Archipelago Sea',
  'Country': 'Finland',
  'Population': 60000,
  'Area': 8300},
 {'City': 'Walla Walla Valley',
  'Country': 'USA',
  'Population': 32237,
  'Area': 33},
 {'City': 'Salina Island', 'Country': 'Italy', 'Population': 4000, 'Area': 27},
 {'City': 'Solta', 'Country': 'Croatia', 'Population': 1700, 'Area': 59},
 {'City': 'Iguazu Falls',
  'Country': 'Argentina',
  'Population': 0,
  'Area': 672}]

需求

遍历上述列表,将每个字典中的City字段值添加到city_names列表中,生成包含所有城市名称的列表,并输出为指定的列表格式。

当前代码与输出

现有代码

city_indices = list(range(0,len(cities)))

for city_names in city_indices:
    print(cities[city_names]["City"])

当前输出

Buenos Aires
Toronto
Pyeongchang
Marakesh
Albuquerque
Los Cabos
Greenville
Archipelago Sea
Walla Walla Valley
Salina Island
Solta
Iguazu Falls

期望输出

["Buenos Aires",
"Toronto",
"Pyeongchang",
"Marakesh",
"Albuquerque",
"Los Cabos",
"Greenville",
"Archipelago Sea",
"Walla Walla Valley",
"Salina Island",
"Solta",
"Iguazu Falls"]

修改方案

方法1:基础循环构建列表+手动格式化输出

先初始化空列表,直接遍历cities取出城市名存入列表,再手动拼接成期望的格式:

city_names = []
# 直接遍历列表中的字典,无需通过索引
for city in cities:
    city_names.append(f'"{city["City"]}"')

# 拼接成指定格式的字符串并打印
print('[' + ',\n'.join(city_names) + ']')

方法2:列表推导式快速构建+JSON格式化输出

用列表推导式一行生成目标列表,借助json模块快速生成带换行的格式:

import json

# 列表推导式直接生成城市名称列表
city_names = [city['City'] for city in cities]

# 用json.dumps生成带缩进的格式,再调整输出
print(json.dumps(city_names, indent=2)[1:-1])

关键说明

  • 原代码的核心问题是没有构建目标列表,仅逐个打印元素;且通过索引遍历的写法冗余,直接遍历cities中的字典更简洁。
  • 两种方法都能生成符合要求的输出:手动拼接更灵活,JSON格式化则更高效规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 19:03:30