簡體   English   中英

您可以將列表的名稱存儲為變量,而不是列表的內容嗎

[英]Can you store the name of the list as a variable, instead of the contents of the list

上下文:在 Raspberrypi 上運行的 Python 代碼,用於為一些 WS2801 RGB LED 設置動畫。 要設置 LED 的顏色,您需要定義 R、G 和 B 數值。 我已經設置了一些調色板來存儲一系列可以很好地協同工作的 RGB 顏色,我想從這個調色板中隨機選擇。

我將這些調色板存儲為兩個列表(此處截斷的列表簡潔):

xmascolours = [
        (0, 137, 42),
        (243, 243, 243),
        ]

halloweencolours = [
        (21, 24, 24),
        (49, 49, 49),
        ]

然后我想從這些列表中隨機選擇一個。 如果我只是這樣做:

colour = random.choice(xmascolours)

這工作正常。 但是為了保持我的代碼清晰(因為我經常隨機化這些值以使 LED 顯示一系列顏色),我想將我正在使用的當前調色板存儲在另一個變量中,所以我只需要更改該值一次,而不是我稱之為 random.choice 的所有地方。 所以,我試圖這樣做:

palette = 'xmascolours'
colour = random.choice(palette)

但這似乎將顏色設置為從單詞調色板中隨機選擇的字符! 顯然我做錯了什么。 有沒有辦法實現這一目標?

我建議使用列表字典。 這樣您就可以通過調色板名稱加載您需要的調色板列表。

import random
colorScheme  = {}
colorScheme["xmascolours"] = [(0, 137, 42),(243, 243, 243)]
colorScheme["halloweencolours"] = [(21, 24, 24),(21, 24, 24)]
import pprint
print("Collection of colorSchemes:")
# You do not have to use pprint it just makes the list output look nice
pprint.pprint(colorScheme)

palette = colorScheme["xmascolours"]
print("All colors from xmascolors palette:")
print(palette)
colour = random.choice(palette) 
print("Random color from palette:")
print(colour)

輸出

Collection of colorSchemes:
{'xmascolours': [(0, 137, 42), (243, 243, 243)], 'halloweencolours': [(21, 24, 24), (21, 24, 24)]}
All colors from xmascolors palette:
[(0, 137, 42), (243, 243, 243)]
Random color from palette:
(0, 137, 42)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM