2 回答

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個(gè)贊
我建議您只使用列表或字典,而不要使用動(dòng)態(tài)變量名。下面的所有版本都導(dǎo)致lists[0],lists[1]等為[],看起來似乎與您想要的足夠接近,并且從長遠(yuǎn)來看將更具可讀性/可維護(hù)性。(注意:我使用lists而不是list作為變量名,因?yàn)楹笳邥?huì)覆蓋內(nèi)置list函數(shù),您可能不希望這樣做)。
1)具有l(wèi)ists列表列表的版本(數(shù)字只是列表的順序):
lists = [[] for i in range(len(myself))]
2)相同,但是使用for循環(huán)而不是列表理解:
lists = []
for i in range(len(myself)):
lists.append([])
3)版本lists是帶有數(shù)字作為鍵的列表的字典(如果您以后要?jiǎng)h除某些值,則更加靈活):
lists = {}
for i in range(len(myself)):
lists[i] = []
關(guān)于動(dòng)態(tài)變量名,即像這樣的變量,list1而不是lists[1]...認(rèn)真地說,您可能不應(yīng)該這樣做。它不必要地復(fù)雜且難以維護(hù)??紤]一下-下個(gè)月您將要修改腳本,然后嘗試找出變量的list1定義位置,而純文本搜索將無法做到這一點(diǎn)。真痛苦
但是,如果你真的想出于某種原因,這是可能的exec- 這里有一些理由不使用它 -或修改locals()- 根據(jù)文檔壞主意。另請參閱評論以獲取更多討論,以討論這些東西為什么不是一個(gè)好主意,甚至在談?wù)撨@些問題時(shí)也令人困惑。

TA貢獻(xiàn)1834條經(jīng)驗(yàn) 獲得超8個(gè)贊
動(dòng)態(tài)變量名很少是一個(gè)好主意。最好總是使用字典:
myLists = {"list{}".format(i):[] for i in range(len_i)}
不要list用作變量名,它會(huì)隱藏現(xiàn)有的關(guān)鍵字。
添加回答
舉報(bào)