Python-基础学习笔记(七)
来源:互联网 发布:javascript array 编辑:程序博客网 时间:2024/06/06 17:02
Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。接下来,记录一些本人自主学习Python的一些笔记:
比较、相等性和真值
== 测试值得相等性
is 测试对象的一致性
a = [1,(1,2,3)]b = [1,(1,2,3]print(a == b,a is b) # 结果:True False# 分析:a,b值相等,但是不是同一个对象a = "123"b = "123"print(a == b,a is b) # 结果:True True# 分析:a,b值相等,所以a == b为True.虽然a,b为两个对象,但是Python内部存储并重复使用字符串作为最佳化,实际上内存中只有一个字符串"123"供a,b分享(如int,float等基本数据类型也是如此),所以a is b为True
字典的比较
字典的比较原理是根据键与值分别进行比较
dict1 = {"a":1,"b":2}dict2 = {"a":1,"b":3}print(dict1 == dict2) # 结果Falseprint(sorted(dict1.items()) < sorted(dict2.items())) # 结果:True
拷贝与引用
L = [1,2,3]m = [1,L,"bb"]print(L) # [1,2,3]print(m) # [1,[1,2,3],"bb"]L[1] = 0 print(L) # [1,0,3]print(m) # [1,[1,0,3],"bb"]# 此时L内部的值发生了改变,m也会跟着改变,此时就是m引用了LL = [1,2,3]m = [1,L[:],"bb"]print(L) # [1,2,3]print(m) # [1,[1,2,3],"bb"]L[1] = 0print(L) # [1,0,3]print(m) # [1,[1,2,3],"bb"]# 此时L内部的值发生了改变,而m却不会跟着改变,此时就可以称为m拷贝了L([:]代表从头到尾开始拷贝,[0:2]拷贝区间为0-2)
重复赋值
L = [1,2,3]print(L * 4) # 结果:[1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]print([L] * 4) # 结果:[[1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3]]
扩展序列解包
通常序列赋值需要左边的变量数目与右边的值项目相等,否则将会报错。此时Python3引入了一个带*号的名称,使得左边变量的项目与右边的值项目不相等时,也不会报错,这就是扩展序列
L = [1,2,3,4]a,b,*c = Lprint(a,b,c) # 结果:1,2,[3,4]L = [1,2]a,b,*c = Lprint(a,b,c) # 结果:1,2,[]L = [1,2,3]a,b,*c = Lprint(a,b,c) # 结果:1,2,[3]L = [1,2,3]a,b,*c,d = Lprint(a,b,c,d) # 结果:1,2,[],3# 通过三组数据可以发现,无论*c有没有匹配到值,返回的都是一个列表,并且左边的数目小于右边的数目时,无论*c在什么位置,都不会赋与到值# 扩展序列解包语法不单对列表有用,对任何类型都有用a,b,*c = "123555"print(a,b,c) # 结果:1,2,["3","5","5","5"]注:如果有多个带星号的名称,或者没有带星号的名称时变量项目与值项目不相等,都会报错。
阅读全文
0 0
- Python-基础学习笔记(七)
- python基础学习笔记(七)
- Python基础学习<七>
- python基础学习七:迭代器
- Python基础学习(七)
- python学习笔记之(七)
- python 学习笔记(七)
- Python学习笔记(七)
- Python学习笔记(七)
- Python学习笔记七:函数
- python基础教程学习笔记七
- OpenCV Python学习笔记(七)
- python-cookbook学习笔记七
- Python学习笔记(七)
- Python学习笔记(七)
- Python基础学习笔记
- python基础学习笔记
- Python基础学习笔记
- 图概论
- linux下cd 和cd /的区别
- Cookie&&Seesion
- signal系列之sigaction函数
- LeetCode No.8 String to Integer (atoi)
- Python-基础学习笔记(七)
- android触摸事件侦听
- Cannot be cast to java.lang.Comparable异常
- hive+haproxy+keepalived高可用配置
- 进程特征码遍历VC版
- Docker资源管理探秘:Docker背后的内核Cgroups机制
- AVL树的平衡化旋转
- Start Express Frameworks
- 基于fread()函数的读数据优化