【Python】14_类型的可变与不可变

简介: ​ 3、类型的可变与不可变# int float bool str list tuple dict# 不可变类型: int float bool str tuple# 可变类型: list dict# num = 10# num = 20## my_list = [1, 2]# my_list.append(3)a = 1000b = 1000print(id(a), id(b)) # python中的内存优化,对于不可变类型进行的,print(id(a) == id(b))a = 'hello'b = 'hello'print(id(a),


 3、类型的可变与不可变

int float bool str list tuple dict

不可变类型: int float bool str tuple

可变类型: list dict

num = 10

num = 20

my_list = [1, 2]

my_list.append(3)

a = 1000
b = 1000
print(id(a), id(b)) # python中的内存优化,对于不可变类型进行的,
print(id(a) == id(b))

a = 'hello'
b = 'hello'
print(id(a), id(b)) # python中的内存优化,对于不可变类型进行的,

my_tuple = (1, 2)
my_tuple1 = (1, 2)
print(id(my_tuple), id(my_tuple1))
print(id(my_tuple) == id(my_tuple1))
print('-' * 20)
my_list = [1, 2, 3]
my_list1 = [1, 2, 3]
print(id(my_list), id(my_list1))

print('' 30)
my_tuple2 = (1, 2, [3, 4])
print(my_tuple2)
my_tuple22 = 10
print(my_tuple2)

4、引用作为函数参数传递
关系到到底要不要在函数中添加global 

函数传参传递的也是引用

my_list = [1, 2, 3] # 全局变量

def func1(a):

a.append(4)

def func2():

# 为啥不加global, 因为没有修改 my_list 中存的引用值
my_list.append(5)

def func3():

global my_list
my_list = [1, 2, 3]   # 修改全局变量的值

def func4(a):

# += 对于列表来说,类似列表的extend方法,不会改变变量的引用地址
a += a  # a = a + a, 修改了a变量a的引用
# print(a)

func1(my_list) # [1, 2, 3, 4]
func2() # [1, 2, 3, 4, 5]
func3() # [1, 2, 3]
print(my_list)

b = 10 # 不可变类型
func4(b)
print(b) #

func4(my_list)
print(my_list) # [1, 2, 3, 1, 2, 3]

相关文章
|
4月前
|
Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
|
3月前
|
存储 索引 Python
Python散列类型(1)
【10月更文挑战第9天】
|
3月前
|
计算机视觉 Python
Python实用记录(一):如何将不同类型视频按关键帧提取并保存图片,实现图片裁剪功能
这篇文章介绍了如何使用Python和OpenCV库从不同格式的视频文件中按关键帧提取图片,并展示了图片裁剪的方法。
103 0
|
25天前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
64 8
|
2月前
|
Python
在 Python 中实现各种类型的循环判断
在 Python 中实现各种类型的循环判断
35 2
|
3月前
|
存储 数据安全/隐私保护 索引
|
3月前
|
Python
【10月更文挑战第6天】「Mac上学Python 11」基础篇5 - 字符串类型详解
本篇将详细介绍Python中的字符串类型及其常见操作,包括字符串的定义、转义字符的使用、字符串的连接与格式化、字符串的重复和切片、不可变性、编码与解码以及常用内置方法等。通过本篇学习,用户将掌握字符串的操作技巧,并能灵活处理文本数据。
63 1
【10月更文挑战第6天】「Mac上学Python 11」基础篇5 - 字符串类型详解
|
3月前
|
Python
【10月更文挑战第6天】「Mac上学Python 10」基础篇4 - 布尔类型详解
本篇将详细介绍Python中的布尔类型及其应用,包括布尔值、逻辑运算、关系运算符以及零值的概念。布尔类型是Python中的一种基本数据类型,广泛应用于条件判断和逻辑运算中,通过本篇的学习,用户将掌握如何使用布尔类型进行逻辑操作和条件判断。
70 1
【10月更文挑战第6天】「Mac上学Python 10」基础篇4 - 布尔类型详解
WK
|
3月前
|
存储 Python
Python内置类型名
Python 内置类型包括数字类型(int, float, complex)、序列类型(str, list, tuple, range)、集合类型(set, frozenset)、映射类型(dict)、布尔类型(bool)、二进制类型(bytes, bytearray, memoryview)、其他类型(NoneType, type, 函数类型等),提供了丰富的数据结构和操作,支持高效编程。
WK
29 2
|
3月前
|
存储 编译器 索引
Python 序列类型(2)
【10月更文挑战第8天】
Python 序列类型(2)