#python #list
Вопрос:
Извините, я новичок в программировании, поэтому извините, если мой вопрос тусклый. Я хочу загрузить эти изображения с помощью списка и цикла for, но я продолжаю получать эту ошибку списка, в которой говорится, что индексы списка должны быть целыми числами или фрагментами. Как я могу это исправить?
код:
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)', Images[n] '.png')))
ошибка:
p.append(pygame.image.load(os.path.join('Assets', 'Pieces (set 1)', Images[n] '.png')))
TypeError: list indices must be integers or slices, not str
Комментарии:
1.
n
представляет каждый элементImages
списка. ТакимImages[n]
образом, часть вызывает ошибку.
Ответ №1:
Смотрите for
Инструкции. Либо
for i in range(len(Images)):
p.append(pygame.image.load(os.path.join('Assets', 'Pieces (set 1)', Images[i] '.png')))
или
for name in Images:
p.append(pygame.image.load(os.path.join('Assets', 'Pieces (set 1)', name '.png')))
Ответ №2:
Рассмотрим, какие значения n
принимают здесь : for n in Images:
. n
будет перебирать элементы в Images
, таким образом n
, имеет тип str
. Вы не можете использовать строку в качестве индекса списка Images[n]
. Вероятно, вы имели в виду построить цикл следующим образом: for n in range(len(Images))
. Тогда n
будут целые числа от 0 до len(Images) - 1
.