我是编程新手,我正在使用pygame和pycharm编写游戏。
我需要从原始大小缩小一些图像,我可以通过一次输入1来完成它,但是当我尝试使用for循环缩短代码时它不起作用。
numbers = [num0_img, num1_img, etc...]
for image in numbers:
image = scale(image, (15, 15))
不缩小图像。但输入全部工作。
num0_img = scale(num0_img, (15, 15))
num1_img = scale(num1_img, (15, 15))
etc...
有人可以帮助我吗?
也只是一张纸条。我已正确导入它。
import pygame
from pygame.transform import *
答案 0 :(得分:1)
您的for循环只是反复将名称image
重新分配给scale(image, (15, 15))
。它永远不会影响numbers
中存储的对象。以下是演示
>>> lst = [[1], [2]]
>>> for i in lst:
... i = [3]
...
>>> lst
[[1], [2]]
>>> i
[3]
>>>
要解决此问题,您可以使用list comprehension并在原地改变numbers
:
numbers[:] = [scale(image, (15, 15)) for image in numbers]