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

Python用for循环加载pygame图片触发列表索引错误怎么解决?

错误原因
  • 遍历for n in Images时,变量n直接拿到的是Images列表里的字符串元素(如'K2'、'G2'等),不是列表的整数下标
  • 代码后续调用Images[n]时相当于把字符串作为列表索引传入,违反Python列表索引必须为整数或切片的规则,因此触发类型错误
修复方案

方案1(推荐):直接使用遍历得到的元素

不需要再通过列表索引取值,直接用迭代取出的字符串拼接文件名即可:

import pygame
import os

Images = ['K2', 'G2', 'S2', 'N2', 'L2', 'R2', 'B2', 'P2']
p = []
for n in Images:
    p.append(pygame.image.load(os.path.join('Assets', 'Pieces (set 1)', n + '.png')))

方案2:遍历列表索引

如果你后续逻辑需要用到元素的下标,可以用enumerate同时遍历索引和元素:

import pygame
import os

Images = ['K2', 'G2', 'S2', 'N2', 'L2', 'R2', 'B2', 'P2']
p = []
for idx, file_name in enumerate(Images):
    # idx为当前元素的整数下标,可按需使用
    p.append(pygame.image.load(os.path.join('Assets', 'Pieces (set 1)', Images[idx] + '.png')))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:54:01