龙空技术网

python可变数据类型和不可变数据类型

HyRer 95

前言:

此时小伙伴们对“python中的可变数据类型有__和__”大体比较关切,看官们都想要知道一些“python中的可变数据类型有__和__”的相关内容。那么小编也在网上网罗了一些有关“python中的可变数据类型有__和__””的相关资讯,希望咱们能喜欢,兄弟们快快来了解一下吧!

说python拷贝之前我们需要了解一下可变数据类型和不可变数据类型,这两个概念在python中是很重要的

比较两个变量内存地址是否相同 可以用一下两种方法

print(id(a) == id(b))print(a is b)
可变数据类型

在id不变的情况下,数据类型内部的元素(value)可以改变,如列表、字典、集合

列表

# 列表里面的元素改变了 但是id没有改变numbers = [1, 2, 3, 4]print(id(numbers))  # 140457440522720numbers[3] = 9000print(id(numbers))  # 140457440522720print(numbers)  # [1, 2, 3, 9000]numbers.append(5000)print(id(numbers))  # 140457440522720print(numbers)  # [1, 2, 3, 9000, 5000]

字典

# 对字典的增删改 无论怎么操作 字典的id始终保持不变,始终指向相同的内存地址info = {    "name": "HyRer"}print(id(info))  # 140482397545328info["age"] = 18print(info)  # {'name': 'HyRer', 'age': 18}print(id(info))  # 140482397545328info["name"] = "xiaoming"print(id(info))  # 140482397545328print(info)  # {'name': 'xiaoming', 'age': 18}

集合

集合本身是可变数据类型,但是集合里面的元素必须是不可变数据类型,这一点要注意

sets = {1, 2, 3, 4}print(id(sets))  # 140223981126912sets.add(5)print(id(sets))  # 140223981126912sets.pop()print(id(sets))  # 140223981126912
不可变数据类型

value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间)如:数字、字符串、布尔值,元组

对于不可变数据类型 只要value的值是相同的,不管变量名是不是一样,他们指向的内存地址都是一个,即他们的id 都是相同的

数字

# 如果数值发生改变,那么id也跟的改变num = 10000print(id(num))  # 4365441824num = 200000print(id(num))  # 4365441856# value值一样 那么变量名指向的内存地址都是一样的num1 = 200000print(id(num) == id(num1))  # Trueprint(num1 is num)  # True

字符串

# 如果value发生改变,那么id也跟的改变name = "xiaoming"print(id(name))  # 140207318292464name = "xiaodong"print(id(name))  # 140207318354608# value值一样 那么变量名指向的内存地址都是一样的name1 = "xiaodong"print(id(name1) == id(name))  # Trueprint(name1 is name)  # True

布尔

right = Trueprint(id(right))  # 4455573680right = Falseprint(id(right))  # 4455573680# value值一样 那么变量名指向的内存地址都是一样的right1 = Falseprint(id(right1) == id(right))  # Trueprint(right is right1)  # True

元组

元祖不能增删改,所以只比较相同value值的内存地址是否相同

tup1 = (1, 2, 3)tup2 = (1, 2, 3)print(tup1 is tup2) # True

标签: #python中的可变数据类型有__和__ #python中可变数据类型有 #python中可变的数据类型和不可变的数据类型