簡體   English   中英

根據存儲在python中變量中的值創建列表

[英]Creating a list based on value stored in variable in python

我有一個帶有字符串值的變量。 我想創建一個以值作為其名稱/標識符的列表,然后將值附加到列表中。 因此,假設變量s = "temp1" ,我想創建一個名為temp1的列表。 顯然,就我而言,我不知道s的值是多少。

別。 創建動態變量很少是一個好主意,如果您嘗試創建本地名稱(在函數內部),則很困難並且會極大地影響性能。

請改用字典:

lists = {}
lists[strs] = []
lists[strs].append(somevalue)

命名空間只是用於在其中查找名稱的代碼的默認詞典。創建更多此類詞典更加容易和整潔。

您仍然可以使用globals()函數訪問全局(模塊名稱空間globals() ,該函數返回一個(可寫的)字典。您可以使用locals()訪問函數local名稱空間,但是寫入該名稱通常不會對函數中的本地名稱空間產生影響已優化。

在Python 2中,您可以通過在函數中使用exec語句來刪除該優化。 在Python 3中,您將無法再關閉優化,因為exec語句已被exec()函數所取代,這意味着編譯器無法再確定地檢測到您可能正在使用它寫入本地名稱空間。

您可以使用globals()

>>> strs = "temp1"
>>> globals()[strs] = []
>>> temp1
[]

但是將dict用於此目的會更合適:

>>> dic = {strs:[]}
>>> dic["temp1"]
[]

暫無
暫無

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

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