例如(從實際的使用大大簡化):Python:有沒有辦法讓所有對象的引用都引用另一個對象?
我爲10,000引用到3個對象的一個列表:
a,b,c = {'font-size':1},{'font-size':2},{'font-size':2.3}`
styles = [a,b,c,a,a,a,a,a,b,......] #10,000
這節省了我的每創建一個新的字典的記憶10000個指標,因爲它們都屬於三種價值之一(實際上有數百種)。
現在我決定字體大小必須是int,所以我圍繞c
到{'font-size':2}
。但我希望所有c
變成b
,因爲它們現在是同一個。
有沒有一種方法(對整個列表進行徹底的比較,並比較每個值並在需要時將其替換,我知道它,但是如果我必須再次對很多對象再次執行,則會變得很慢),以使所有參考c
參考b
?我知道python保留垃圾清理這樣的引用列表。或者也許c
引用的對象可以依次自動引用b
?
編輯:我欣賞建議的解決方法,但正如在評論中所述,解決方法都讓我遇到問題,我希望通過找到問題答案(改變內存消耗或時間消耗)通過Python引用列表引用或以某種方式在python內部重定向引用)。
呢'C = B'做出任何幫助嗎? –
不,因爲在'styles'中它仍然指'c',即'styles [2]是b == False' – Jeff
據我所知,你所要求的是不可能的。 – mgilson