01 赋值运算符补充
一、增量赋值
day02中已经提到:https://www.cnblogs.com/yang1333/p/12340625.html 这里就一笔带过,简单举一个例子
x = 1
x += 1 # 等同于x = x + 1
二、交叉赋值
中间变量交换法
# 定义变量
a = 10
b = 20
# 交换
# 1、把b赋值给swap,swap和b同时指向一个值20
# 2、再把a赋值给b,b等于10,原来的a门牌号接触于原来值20的关联
# 3、最后把swap与之相关联的值10赋值给变量a,a就是20
swap = b # swap = 20
b = a # b = 10
a = swap # a = 20
等号赋值颠倒法
a,b = b,a
三、链式赋值
- 多个变量命,同时指定一个值
# low写法
a = 10
b = a
c = b
d = c
# 链式赋值
a = b = c = d = 10
四、解压赋值
只取左边
# 解压列表
salaries = [33, 44, 55, 66, 77]
a, b, c, *_ = salaries
print(a, b, c, _) # 33 44 55 [66, 77]
# 解压字符串
string = '我真的帅!'
x, y, z, *_ = string
print(x, y, z, _) # 我 真 的 ['帅', '!']
只取右边
salaries = [33, 44, 55, 66, 77]
*_, a, b = salaries
print(a, b) # 66 77
同时取左边和右边
salaries = [33, 44, 55, 66, 77]
a, b, *_, x = salaries
print(a, b, x) # 33 44 77
总结
- 只要是多个值得数据类型都能解压(字符串,列表,元组,字典,集合等。不过多用于列表、元组类型得解压)。如果是字典解压,解压结果是key。
- 解压赋值,左边变量名得个数,与右面包含值得个数要相同,且值是一一顺序对应
- 解压赋值,只能存在一个*号表达式
单个下划线与下划线开头有特殊意义:单个下划线表示废弃得变量,表示该变量值是无用得。
*
变量名:对应值赋值完毕以后,*会把剩余得值存放到一起,存成一个列表(无论要解压得对象是什么类型),然后赋值给当前变量名。