我常常用顏色值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個變量*而言,它只是冗長而沒有改進。 –