[英]How to change the index of an element in a list/array to another position/index without deleting/changing the original element and its value
[英]How to assign an element from a 2D array to a new variable without changing its original value in python?
我想從 2D 數組中獲取一個值(因此該值具有數組類型)並將其分配給一個新變量。 但是當我對這個新變量進行更改時,它在該二維數組中的原始值也會發生變化。 我想知道是否有正確的方法可以做到這一點?
這是我的示例代碼。
a = [[1],[2],[3]]
b = a[1]
b.append(2)
a.append(b)
print(a)
print(b)
在 output 中,a、b 將是
a = [[1], [2, 2], [3], [2, 2]]
b = [2, 2]
我不希望 a[1] 也被更改。 如果有人可以幫我解決這個問題? 謝謝。
對於初學者來說,這可能是最令人困惑的概念之一,當您進行訂閱切片時, b = a[1]
,對第一個數組a
的引用已傳遞給b
,您對b
執行的任何操作都將完成到a[1]
。 除非您制作原始數組的完整副本,否則對下標的任何操作都會導致 original 發生變化,因此,無論何時您想在不更改其初始值的情況下使用數組,請手動復制它。
a = [[1],[2],[3]]
# in your case it is nested so it will be a bit intricate
ac = list(map(lambda x:list(map(lambda y:y, x)), a))
b = ac[1]
b.append(2)
a.append(b)
print(a)
print(b)
# [[1], [2], [3], [2, 2]]
# [2, 2]
因為a[1]
是一個數組,將它傳遞給b
將通過引用而不是通過值傳遞它。 您可以使用
b = a[1].copy()
在不影響原始a[1]
的情況下a[1]
的新實例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.