【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]

相关文章
|
2月前
|
Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
|
20天前
|
存储 索引 Python
Python散列类型(1)
【10月更文挑战第9天】
|
25天前
|
计算机视觉 Python
Python实用记录(一):如何将不同类型视频按关键帧提取并保存图片,实现图片裁剪功能
这篇文章介绍了如何使用Python和OpenCV库从不同格式的视频文件中按关键帧提取图片,并展示了图片裁剪的方法。
54 0
|
17天前
|
存储 数据安全/隐私保护 索引
|
25天前
|
Python
【10月更文挑战第6天】「Mac上学Python 11」基础篇5 - 字符串类型详解
本篇将详细介绍Python中的字符串类型及其常见操作,包括字符串的定义、转义字符的使用、字符串的连接与格式化、字符串的重复和切片、不可变性、编码与解码以及常用内置方法等。通过本篇学习,用户将掌握字符串的操作技巧,并能灵活处理文本数据。
50 1
【10月更文挑战第6天】「Mac上学Python 11」基础篇5 - 字符串类型详解
|
25天前
|
Python
【10月更文挑战第6天】「Mac上学Python 10」基础篇4 - 布尔类型详解
本篇将详细介绍Python中的布尔类型及其应用,包括布尔值、逻辑运算、关系运算符以及零值的概念。布尔类型是Python中的一种基本数据类型,广泛应用于条件判断和逻辑运算中,通过本篇的学习,用户将掌握如何使用布尔类型进行逻辑操作和条件判断。
54 1
【10月更文挑战第6天】「Mac上学Python 10」基础篇4 - 布尔类型详解
WK
|
19天前
|
存储 Python
Python内置类型名
Python 内置类型包括数字类型(int, float, complex)、序列类型(str, list, tuple, range)、集合类型(set, frozenset)、映射类型(dict)、布尔类型(bool)、二进制类型(bytes, bytearray, memoryview)、其他类型(NoneType, type, 函数类型等),提供了丰富的数据结构和操作,支持高效编程。
WK
11 2
|
21天前
|
存储 编译器 索引
Python 序列类型(2)
【10月更文挑战第8天】
Python 序列类型(2)
|
22天前
|
存储 C++ 索引
Python 序列类型(1)
【10月更文挑战第8天】
|
30天前
|
存储 Java Apache
Python Number类型详解!
本文详细介绍了 Python 中的数字类型,包括整数(int)、浮点数(float)和复数(complex),并通过示例展示了各种算术操作及其类型转换方法。Python 的 `int` 类型支持任意大小的整数,`float` 类型用于表示实数,而 `complex` 类型用于表示复数。此外,文章还对比了 Python 和 Java 在数字类型处理上的区别,如整数类型、浮点数类型、复数类型及高精度类型,并介绍了各自类型转换的方法。尽管两种语言在语法上有所差异,但其底层逻辑是相通的。通过本文,读者可以更好地理解 Python 的数字类型及其应用场景。
35 2