我常常用颜色值randint的元组与此类似的如何在不重复代码的情况下定义randint的元组?
(a, b, c) = randint(0, 255), randint(0, 255), randint(0, 255)
在我以为,必须有一个更好的方法 - 有?
我常常用颜色值randint的元组与此类似的如何在不重复代码的情况下定义randint的元组?
(a, b, c) = randint(0, 255), randint(0, 255), randint(0, 255)
在我以为,必须有一个更好的方法 - 有?
a, b, c = [randint(0, 255) for _ in range(3)]
为什么先创建一个全新的列表?只需用'(...)'替换'[...]'。 –
此外,这只是增加认知负荷,这不是一个真正的改善。 –
如果你打算这样做,你不妨使用一个生成器表达式... –
使用numpy?
import numpy as np
tuple(np.random.randint(256, size=3))
# (222, 49, 14)
多
import numpy as np
n=3
[tuple(i) for i in np.random.randint(256, size=(n,3))] # list
# (tuple(i) for i in np.random.randint(256, size=(n,3))) # generator
# [(4, 70, 3), (10, 231, 41), (141, 198, 105)]
速度比较
(randint(0, 255), randint(0, 255), randint(0, 255))
个
100000循环,最好的3:每次循环5.31微秒
tuple(random.randint(0, 255) for _ in range(3))
100000循环,最好的3:每次循环
tuple(np.random.randint(256, size=3))
6.96微秒100000个循环,最佳3个循环:每个循环4.58μs
更好地以什么方式? –
您可以从'randrange(255),randrange(255),randrange(255)'开始。 –
你可以使用一个生成器表达式,但是对于*只有3个变量*而言,它只是冗长而没有改进。 –