Python3可变数据类型与不可变数据类型
有很多人在刚开始接触 python 这个语言的时候,总是搞不清楚什么是 可变数据类型 什么是 不可变数据类型,今天就让我们通过这篇小文章来详细了解一下。
知识点目录:
1.python 的数据类型
2.可变数据类型 和 不可变数据类型 都有哪些?
3.专业名词解释
4.代码举例说明
5.表格图
----------------------------------------------------------这是一条帅气的分割线-----------------------------------------------------------------
1. python 的数据类型?
数值类型、字符串、元组、列表、字典、集合(不常用)
2.可变数据类型 和 不可变数据类型 都有哪些?
可变数据类型:list(列表)、dict(字典)、set(集合,不常用)
不可变数据类型:数值类型(int、float、bool)、string(字符串)、tuple(元组)
3.专业名词解释
可变数据类型:当该数据类型对应的变量的值发生了变化时,如果它对应的内存地址不发生改变,那么这个数据类型就是 可变数据类型。
不可变数据类型:当该数据类型对应的变量的值发生了变化时,如果它对应的内存地址发生了改变,那么这个数据类型就是 不可变数据类型。
总结:可变数据类型更改值后,内存地址不发生改变。不可变数据类型更改值后,内存地址发生改变。
4.代码举例说明
4.1 数值数据类型
# 数值数据类型
number = 1
print(id(number),type(number))
number = 2 # 重新赋值
print(id(number),type(number))
# 结果
1738921008 <class 'int'>
1738921024 <class 'int'>
总结:数值数据类型,同一个变量,一旦重新赋值,内存地址就会发生改变。
4.2 字符串数据类型
# 字符串数据类型
name = 'Super Man 超人'
print(id(name),type(name))
name = 'Iron Man 钢铁侠'
print(id(name),type(name))
# 结果
56870552 <class 'str'>
64772320 <class 'str'>
总结:字符串数据类型,同一个变量,一旦重新赋值,内存地址就会发生改变。
4.3 元组数据类型
# 元组数据类型
tuple_data1 = (1,'Hello')
print(id(tuple_data1),type(tuple_data1))
tuple_data2 = ([2,3],(5,6)) # 创建新的元组
tuple_data1 = tuple_data1 + tuple_data2 # 两个元组进行连接
print(id(tuple_data1),type(tuple_data1)) # 打印连接之后的内存地址
print(tuple_data1) # 打印连接后的数据
# 结果
91584352 <class 'tuple'>
91143888 <class 'tuple'>
(1, 'Hello', [2, 3], (5, 6))
总结:判断元组数据类型相对麻烦一些,因为元组数据类型类似于列表数据类型,元组内可以存储 数值类型、字符串、列表、元组,但是元组一经创建,内部的元素的值就不能修改,否则报错。但是我们可以对元组进行连接组合。在例子中可以看到,同一个变量,将两个元组的值进行连接赋值给变量,然后打印变量内存地址发生改变。所以做出判断,元组是不可变数据类型
4.4 列表数据类型
# 列表数据类型
list_data = [1,'q','qwer',True]
print(id(list_data),type(list_data))
list_data.append('djx') # 调用 append 添加方法,添加数据
print(id(list_data),type(list_data))
# 结果
88407856 <class 'list'>
88407856 <class 'list'>
总结:列表数据类型,同一个变量,添加新值之后,内存地址不会发生改变。
4.5 字典数据类型
# 字典数据类型
dict_data = {2: 1, 'key2': 'djx', 'key3': 'li'}
print(id(dict_data), type(dict_data))
dict_data['key4'] = 'haha' # 往字典中添加一个键值对
print(id(dict_data), type(dict_data))
# 结果
86364208 <class 'dict'>
86364208 <class 'dict'>
总结:字典数据类型,同一个变量,添加新值之后,内存地址不会发生改变。
4.6 集合数据类型
# 集合数据类型
set_data = {1, 'd', '34', '1', 1}
print(id(set_data), type(set_data))
set_data.add('djx') # 添加元素
print(id(set_data), type(set_data))
# 结果
84993488 <class 'set'>
84993488 <class 'set'>
总结:集合数据类型,同一个变量,添加新值之后,内存地址不会发生改变。
5.表格图
数据类型 | 可变/不可变 |
整型 | 不可变 |
字符串 | 不可变 |
元组 | 不可变 |
列表 | 可变 |
字典 | 可变 |
集合 | 可变 |
非常感谢同仁的观看.如果小编写的有问题,欢迎评论.发现问题后会第一时间修改.
祝大家工作顺利. ♥(ˆ◡ˆԅ)