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

如何用Python遍历嵌套列表并提取美国州名称

解决Python嵌套列表遍历提取州名的问题

首先看你的核心错误:循环里每次固定打印data[0](也就是表头行),所以重复输出了相同内容。正确的做法是遍历每个子列表,提取子列表的第一个元素,同时跳过开头的表头行。

修正后的代码

import requests

# 修正URL:population后缺少?,否则API请求会失败
url = 'https://api.census.gov/data/2021/pep/population?get=NAME,POP_2020,POP_2021&for=state:*'
response = requests.get(url)
data = response.json()

def get_state_names():
    # 跳过第一个表头行,从索引1开始遍历所有州数据
    for state_data in data[1:]:
        # 取每个子列表的第一个元素(州名)
        print(state_data[0])

# 调用函数
get_state_names()

预期输出

Oklahoma
Nebraska
Hawaii
South Dakota
Tennessee
...

进一步优化:返回州名列表

如果需要后续复用这些州名,建议让函数返回列表而非直接打印:

def get_state_names():
    # 用列表推导式简洁提取所有州名
    return [state_data[0] for state_data in data[1:]]

state_names = get_state_names()
print(state_names)

错误原因解析

你的原代码中for i in data:循环时,每次都访问data[0]——这是整个列表的第一个元素(表头),所以循环多少次就输出多少次表头。正确的逻辑是用循环变量(比如state_data)指代当前遍历到的子列表,再取该子列表的第一个元素state_data[0];同时因为第一个子列表是表头,不需要提取,所以从data[1:]开始遍历。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 02:11:05