2015-03-31 51 views
0

創建變量名我期待兩個字符串在Python中創建一個變量名,例如:從兩個字符串在Python

a = "column_number" 
b = "_url1" 

,然後能夠得到一個變量名"column_number_url1",我可以使用。

我明白這是一般不是一個好主意 - 有無數的帖子,其進入爲什麼它是一個糟糕的主意(如How do I create a variable number of variables?Creating multiple variables) - 我主要是希望能夠做到這一點,因爲這些都是變量,在代碼中的其他地方定義,並希望能夠重新訪問它們的簡單方法(即,而不是創建數千個獨特變量,我同意字典等會更好)。

據我所知,我發現的其他帖子中的答案是這樣做的所有替代方法,而不是如何從兩個字符串創建變量名稱。

+0

出了什麼問題'A + B'? – jonrsharpe 2015-03-31 16:30:14

+0

我想將「a + b」作爲變量名稱,所以我理論上可以使用「a + b」= 5,然後使用名稱爲「a + b」的變量,值爲5 – kyrenia 2015-03-31 16:31:40

+1

使用字典並把一個+ B作爲關鍵 – 2015-03-31 16:32:51

回答

5
>>> a = "column_number" 
>>> b = "_url1" 
>>> x = 1234 
>>> globals()[a + b] = x 
>>> column_number_url1 
1234 

,有沒有很多帖子解釋如何做到這一點是因爲(正如你可能已經聚集),這是不是一個好主意原因。我保證你的用例也不例外。

如果您沒有注意到,globals()本質上是一個全局變量字典。這意味着你應該一直使用字典這個;)

+0

完美 - 謝謝,雖然我不反對這可能是一個壞主意(並且不相信我是「規則的一個例外」),但現在知道如何去做:-) – kyrenia 2015-03-31 16:37:07

+0

@在這種情況下凱里尼亞爲什麼不給予upvote? – 2015-03-31 16:41:23

+0

@TimCastelijns - 完成,只是在等待所需的時間通過,以便能夠將問題標記爲已解答 – kyrenia 2015-03-31 16:46:50

1

作爲替代喬爾的回答,字典將會更加美好:

a = "column_number" 
b = "_url1" 
data = {} 

data[a+b] = 42 
1

您可以使用字典:

a = "column_number" 
b = "_url1" 
obj = {} 
obj[a+b] = None 
print obj #{"column_number_url1": None} 

或者,你可以使用eval,但記得要經常觀察自己身邊的eval/exec用法:

a = "column_number" 
b = "_url1" 
exec(a+b+" = 0") 
print column_number_url1 #0 

eval is evil