(13)自行创建一个包含数字、列表、字典、元祖的嵌套列表,对比使用赋值(“=”) 和拷贝(“copy”)方法的差异。
时间: 2024-09-10 18:28:26 浏览: 48
首先,我们创建一个嵌套列表,其中包含了数字、列表、字典和元组:
```python
nested_list = [
[1, 2, 3],
{'key': 'value', 'list': [4, 5]},
(6, 7, 8),
9
]
```
1. **赋值**(=):当你对列表进行赋值操作时,实际上是引用了同一个内存地址。也就是说,修改原列表会影响到所有复制出来的版本。
```python
copied_nested_list = nested_list
copied_nested_list[0].append(10)
print(nested_list) # 输出:[[1, 2, 3, 10], {'key': 'value', 'list': [4, 5]}, (6, 7, 8), 9]
```
2. **拷贝**(copy):使用内置的`copy()`函数或者`.copy()`方法,会创建一个新的列表,新的元素有自己的内存地址,因此对新列表的操作不会影响原始列表。
```python
copied_nested_list = nested_list.copy()
copied_nested_list[0].append(10)
print(nested_list) # 输出:[[1, 2, 3], {'key': 'value', 'list': [4, 5]}, (6, 7, 8), 9],原始列表未变
```
总结一下,赋值操作会使变化反映到所有的副本,而拷贝则生成独立的副本,各自拥有独立的变更空间。
阅读全文