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

Python新手求助:如何用while或for语句解析列表?

正确解析Python列表的方法

你写的for i in range(len(weather)): print(weather[i])理论上会输出每个完整的元组(比如('Sunday', 'zero', 'Sunny')),如果实际只输出了每个组的首字符,大概率是你误写了类似weather[i][0]的代码。下面给你几种正确的遍历解析方式:

一、用for循环遍历

1. 直接遍历元组

不需要借助索引,直接遍历列表里的每个元素:

for day_info in weather:
    print(day_info)

运行后会输出每个完整的元组:

('Sunday', 'zero', 'Sunny')
('Monday', 'one', 'Cloudy')
('Tuesday', 'two', 'Windy')
('Wednesday', 'three', 'Rainy')
('Thursday', 'four', 'Partial Cloudy')
('Friday', 'five', 'Full Sun')

2. 元组拆包,单独获取字段

如果想分别取出星期、英文数字、天气这三个值,可以直接拆包:

for day, num_str, condition in weather:
    print(f"星期:{day},英文数字:{num_str},天气:{condition}")

输出会更直观:

星期:Sunday,英文数字:zero,天气:Sunny
星期:Monday,英文数字:one,天气:Cloudy
星期:Tuesday,英文数字:two,天气:Windy
星期:Wednesday,英文数字:three,天气:Rainy
星期:Thursday,英文数字:four,天气:Partial Cloudy
星期:Friday,英文数字:five,天气:Full Sun

3. 带索引遍历(需用到索引时)

如果需要获取元素的位置索引,用enumerate比range(len(weather))更简洁:

for idx, day_info in enumerate(weather):
    print(f"第{idx+1}天:{day_info}")

二、用while循环遍历

用while循环需要手动维护索引变量,注意一定要让索引递增,避免死循环:

index = 0
while index < len(weather):
    # 方式1:输出完整元组
    print(weather[index])
    
    # 方式2:拆包输出单个字段
    # day, num_str, condition = weather[index]
    # print(f"{day}的天气是{condition}")
    
    index += 1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 08:22:22