但是,當我更改新的時候,它也會更改self._marker。我希望能夠改變新的,而不用改變self._marker。我也無法使用deepcopy,因爲我做了這個操作幾千次,並且使用深度拷貝會導致巨大的性能損失。如何在不更改其內容的情況下製作列表的副本?
我該怎麼辦?
但是,當我更改新的時候,它也會更改self._marker。我希望能夠改變新的,而不用改變self._marker。我也無法使用deepcopy,因爲我做了這個操作幾千次,並且使用深度拷貝會導致巨大的性能損失。如何在不更改其內容的情況下製作列表的副本?
我該怎麼辦?
您處於正確的軌道上,但是您提出的解決方案不起作用,因爲您沒有製作內部列表的副本。他們保持不變。
你可以這樣做:
new_list = [e[:] for e in self._marker]
這PERFORMA一個deepcopy的是你在這種情況下所需要的。
這回答你問的問題。如果你有其他要求,你需要在你的問題中明確表達。
如果您想要深度複製,則必須進行深層複製。是的,深拷貝可能很昂貴。你真的想做什麼? (即我認爲這是一個XY問題) – Claudiu
請注意,做一個副本兩層深你可以做'新= [l [:]爲self._marker]' – Claudiu
@Claudiu我試圖複製我的屬性_marker,所以我可以使用該副本並進行變異,但下次我這樣做時,我希望self._marker保持不變,而不會改變 – Randomuser123