用标量乘元组

92 投票
12 回答
112701 浏览
提问于 2025-04-15 16:17

我有以下这段代码:

print(img.size)
print(10 * img.size)

这段代码会输出:

(70, 70)
(70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70)

我希望它能输出:

(700, 700)

有没有办法做到这一点,而不需要写:

print(10 * img.size[0], 10 * img.size[1])

附注:img.size 是一个PIL图像。我不知道这在这个情况下是否重要。

12 个回答

18

pythonic的方式可以通过列表推导式来实现:

y = tuple([z * 10 for z in img.size])

另一种方法可以是:

y = tuple(map((10).__mul__, img.size))
53

在编程中,有时候我们会遇到一些问题,可能是因为代码写得不够好,或者是我们对某些概念理解得不够透彻。比如,有人可能在使用某个功能时,发现它并没有按照预期工作,这时候就需要仔细检查代码,看看是不是哪里出错了。

在解决问题的过程中,很多人会去网上查找资料,比如在StackOverflow这样的论坛上提问或者寻找答案。这里有很多经验丰富的程序员,他们会分享自己的见解和解决方案。

当你看到别人提问时,通常会有很多人给出不同的回答。每个回答可能会从不同的角度来分析问题,提供各种解决方法。你可以根据自己的情况,选择最适合你的方案。

总之,编程就像解谜一样,有时候需要耐心和细心去找出问题的根源,然后一步步解决它。记得多向他人请教,积累经验,这样你会越来越熟练。

img.size = tuple(i * 10 for i in img.size)
94

可能有更好的方法,但这个方法应该可以用。

tuple([10*x for x in img.size])

撰写回答