簡體   English   中英

如何從python中另一個變量的內容創建一個新變量?

[英]How to create a new variable from the contents of another variable in python?

可能這是一個非常簡單的問題,但是我被困在這里。 我將變量val設為val="mandy" ,現在我想創建一個名稱為val內容的列表。 即“ mandy”。 因此,如何在python中定義mandy=[] 就像PHP的“ $$”一樣。

可以在Python中執行類似的操作,但是這樣做是非Python的(盡管在我收集的時候這是常見的PHP習慣用法)。 不要以不希望使用的方式使用該語言。

通過使用字典(Python中經過最大優化的數據類型),您可以更好地完成工作:

>>> val = "mandy"
>>> mydict = {}
>>> mydict[val] = []
>>> mydict[val].append("Hello")
>>> mydict[val].append("Mandy")
>>> mydict
{'mandy': ['Hello', 'Mandy']}

沒有Python方式可以使用變量名創建變量。 這樣做是不好的做法。 而是使用字典:

val = "mandy"
mynames = {}
mynames[val] = []

您現在可以訪問mynames["mandy"]來獲取或修改列表。

請注意,您可以通過修改locals在某些Python實現中實現類似php的行為,例如

>>> locals()['mandy'] = []
>>> mandy
[]

強烈建議不要這樣做 ,但是不能在某些Python實現中使用。

您不能(沒有黑客手段)也不應該。

請使用字典values = {"mandy": []}

為什么要一個名字不知道的局部變量? 如果您在編碼時知道其名稱,請在各種花園中使用它。 如果不是,則不應是局部變量。

使用dict 您可以使用getattr / setattr或使用globals()來創建名稱,但是您很有可能不需要它。

val = 'foo'
d   = { val: [] }

嘗試這個:

>>> val = 'mandy'
>>> vars()[val] = []
>>> mandy
[]

查看有關內置vars()的更多詳細信息

暫無
暫無

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

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