01 赋值运算符补充

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。
  • 解压赋值,左边变量名得个数,与右面包含值得个数要相同,且值是一一顺序对应
  • 解压赋值,只能存在一个*号表达式
  • 单个下划线与下划线开头有特殊意义:单个下划线表示废弃得变量,表示该变量值是无用得。

  • *变量名:对应值赋值完毕以后,*会把剩余得值存放到一起,存成一个列表(无论要解压得对象是什么类型),然后赋值给当前变量名。

猜你喜欢

转载自www.cnblogs.com/yang1333/p/12346422.html
今日推荐