arrays - 如果一个 list1 包含 list2 的一些元素。如果 list2 发生变化, list1 也会发生变化吗?
问题描述
这就是我想要创造的。
list2 =[1,2,3];
list1= [list2[0],list2[1]];
list2[0]=2;
print(list1);
我希望输出为 [2,2] 而不是 [1,2]
解决方案
Python 中的整数是不可变的。这是您对列表所期望的行为,但这是不可能的。考虑这个例子:
x = 0
y = 0
print(id(x), id(y))
y = 1
print(id(y))
输出:
94583099374048 94583099374048
94583099374080
而列表是可变的:
a_list = ["a",
"b",
"c",
"d",
"e",
"f"
]
b_list = a_list
print("a list id before update", id(a_list))
print("b list id before update", id(b_list))
a_list += ["g"]
print("a list after update", a_list)
print("b list after update", b_list)
print("a list id after update", id(a_list))
print("b list id after update", id(b_list,))
输出:
a list id before update 139734649089472
b list id before update 139734649089472
a list after update ['a', 'b', 'c', 'd', 'e', 'f', 'g']
b list after update ['a', 'b', 'c', 'd', 'e', 'f', 'g']
a list id after update 139734649089472
b list id after update 139734649089472
这解释了您所看到的行为。list1
并且list2
存储在单独的内存位置,因为您没有将列表本身等同起来。list1[0]
因此和之间没有联系list2[0]
。
注意:id()
返回对象的内存地址。
推荐阅读
- java - Java中的自引用类
- android - 您可以在 Jetpack Compose 预览版中展开 DropdownMenu 吗?
- php - 寻找从 html 中的 Li 标签中提取 data-url 属性值的方法,使用“simple_html_dom.php”进行抓取
- r - R中带有日期的散点图
- python - Django: Querying a stacked inline object | ValueError at /profile Cannot query "Anthony_Jamez12": Must be "Profile" instance
- reactjs - 测试使用 Testing React 库的 Material UI 组件,并且回调函数在 onChange 道具中没有被识别
- sql - 在 SQLite3 中,有没有办法在行限制后继续查询?
- kubernetes - k3s:访问指标服务器所需的权限?
- javascript - 在 if/else 语句中调用异步函数 - Javascript
- c++ - thread_local 的内存使用量如何随线程数扩展?