有很多人在刚开始接触 python 这个语言的时候,总是搞不清楚什么是 可变数据类型 什么是 不可变数据类型,今天就让我们通过这篇小文章来详细了解一下。
知识点目录:
1.python 的数据类型
2.可变数据类型 和 不可变数据类型 都有哪些?
3.专业名词解释
4.代码举例说明
5.表格图
----------------------------------------------------------这是一条帅气的分割线-----------------------------------------------------------------
1. python 的数据类型?数值类型、字符串、元组、列表、字典、集合(不常用)
2.可变数据类型 和 不可变数据类型 都有哪些?可变数据类型:list(列表)、dict(字典)、set(集合,不常用)
不可变数据类型:数值类型(int、float、bool)、string(字符串)、tuple(元组)
3.专业名词解释可变数据类型:当该数据类型对应的变量的值发生了变化时,如果它对应的内存地址不发生改变,那么这个数据类型就是 可变数据类型。
不可变数据类型:当该数据类型对应的变量的值发生了变化时,如果它对应的内存地址发生了改变,那么这个数据类型就是 不可变数据类型。
总结:可变数据类型更改值后,内存地址不发生改变。不可变数据类型更改值后,内存地址发生改变。
4.代码举例说明4.1 数值数据类型
# 数值数据类型number = 1print(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.表格图 数据类型可变/不可变整型不可变字符串不可变元组不可变列表可变字典可变集合可变非常感谢同仁的观看.如果小编写的有问题,欢迎评论.发现问题后会第一时间修改.
祝大家工作顺利. ♥(ˆ◡ˆԅ)
快三稳赢计划图er',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.表格图 数据类型可变/不可变整型不可变字符串不可变元组不可变列表可变字典可变集合可变非常感谢同仁的观看.如果小编写的有问题,欢迎评论.发现问题后会第一时间修改.
祝大家工作顺利. ♥(ˆ◡ˆԅ)