2013-05-21 23 views
0

我使用easygui從用戶獲取整數列表。它輸出是這樣的:將列表轉換爲python中的變量3

fieldValues = [1,2] 

我想該列表轉換爲:

var1 = 1 
var2 = 2 
+11

你可能不希望這樣做。你究竟想用它們做什麼? – Blender

+0

@Blender說了什麼,但要做到這一點,你可以這樣做:'for fieldValues:locals()['val {0}'.format(val)] = val'。但是,你不想這樣做。 – sberry

+2

爲什麼不只是使用fieldValues [0]和fieldValues [1]? –

回答

0

(編輯來解釋我的推理更清晰)

原因之一,你可能想轉換列表到變量是爲了使代碼更加自我記錄。例如,像password這樣的變量比fieldValue[3]更容易理解。

但是,正如@Blender所建議的,最好不要將列表的元素分配給各個變量。

實現這兩個目標的一種方法是按名稱而不是數字來引用列表中的元素。在其他語言中,您可以使用枚舉變量(例如,Java或C#中的enum)。您可以使用enum包的Python爲一個完全可靠的解決方案,或者你可以做這樣的事情:

username, password = range(2) 
print(fieldValue[username]) 
+0

你不覺得這有點混亂嗎? – Blender

+1

@Blender:我同意它可能會混淆變量名稱,比如'var1',但是更有意義的名稱與GUI返回的值有關,它可以使代碼更具可讀性。比如,我認爲'fieldValue [password]'比'fieldValue [3]'更易維護。 – Simon

+0

關於你的更新:'fieldValue [username]'並不是我在Python代碼中看到的東西。 ''用戶名'本身就不錯,但是像這樣存儲常量並不常見,並且可能會引起誤解。 – Blender

相關問題