Python for循环不起作用。 (Pygame,Pycharm)

时间:2014-07-10 23:17:21

标签: python for-loop pygame pycharm

我是编程新手,我正在使用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 *

1 个答案:

答案 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]