del 函数是咋回事
g = {'ACT': ['CTG', 'CTA'], 'GAC': ['ACT']}print(g)
aa = g['ACT']
del aa
print(aa,g)
输出:
1:{'ACT': ['CTG', 'CTA'], 'GAC': ['ACT']}
2:['CTA']
{'ACT': ['CTA'], 'GAC': ['ACT']}
我删除aa列表的元素,为什么字典中对应的values也会少了一个元素 del函数删除的是列表中的元素,而不是列表本身。在这个例子中, aa = g['ACT'] 将字典中'ACT'对应的值列表赋值给了变量aa。当我们使用 del aa 删除aa列表中的第一个元素时,实际上是删除了'ACT'对应的值列表中的第一个元素。由于字典中的值是列表,所以字典中的值也会发生相应的变化。因此,字典中对应的values也会少了一个元素。 isdkz 发表于 2023-9-20 16:59
del函数删除的是列表中的元素,而不是列表本身。在这个例子中, aa = g['ACT'] 将字典中'ACT'对应的值列表 ...
同理 pop 也会这样吧
在Python的所有数据类型中, 可以分为两大类: 可变类型, 不可变类型.
可变类型: dict, set, list;
不可变类型: int, str, float, tuple, bool等.
可变类型的特点: 在数据赋值时, 通常采用内存标签引用的方式进行, 也就是说, 被赋值的两个变量数据引用的同一个, 任何变动都会导致两个变量同时变化.
In : a =
In : b = a
In : del b
In : a
Out:
In : a.append(3)
In : b
Out:
不可变类型特点: 在数据被赋值后, 遵循写时copy原则(一旦数据发生变动, 则在内存中重新开辟新的空间), 当然也存在特殊情况, 比如Python自带的缓存池和tuple的特殊性 BSOD 发表于 2023-9-21 14:37
在Python的所有数据类型中, 可以分为两大类: 可变类型, 不可变类型.
可变类型: dict, set, list;
不可变 ...
好的老哥
页:
[1]