13.Python链式赋值&交叉赋值&解压赋值

1.链式赋值

多个变量同时指向一个数据的内存地址时使用。
num0 = num1 = num2 = 666
print(num0, num1, num2)  # 666 666 666

# 修改值
num2 = 111
print(num0)  # 666

image-20211226230637570

2.交叉赋值

多个变量之间进行互换数据。
x = 10
y = 20
z = 30
print(x, y, z)  # 10 20 30

# 交换值
z, x, y = x, y, z
# 新的排序 = 原来的排序
print(z, x, y)  # 10 20 30

image-20211226233507054

3.解压赋值

将一个容器类型类型的元素分别赋值给对应的变量名。
全部解压:变量名能够与容器类型中元素数量对应。
指定解压:使用*号将多余的元素压缩赋值给*后的变量名。(如果用不上这些数据变量名建议使用_下划线)
* 号后面的值一定是一个列表
3.1全部解压
list1 = [1, 2, 3, 4, 5, 6]
num1, num2, num3, num4, num5, num6 = list1
print(num1, num2, num3, num4, num5, num6)  # 1 2 3 4 5 6
3.2指定解压
list1 = [1, 2, 3, 4, 5, 6]
num1, *_, num6 = list1
print(num1)
print(_)
print(num6)
1
[2, 3, 4, 5]
6

image-20211227000405856

# * 号后面的值一定是一个列表
list1 = [1, 2]
num1, *_ = list1
print(num1, _)  # 1 [2]

list1 = [1]
num1, *_ = list1
print(num1, _)  # 1 []
# 解压字典默认只能拿到键
dic = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
# 取键
*_, d1 = dic
print(_, d1)  # ['k1', 'k2'] k3

# 取值
*_, d1 = dic.values()
print(_, d1)  # ['k1', 'k2'] k3

# 取键值
*_, d1 = dic.items()
*_, d1 = dic.items()
print(_, d1)  # [('k1', 'v1'), ('k2', 'v2')] ('k3', 'v3')
# 解压赋值顺序
list1 = [1, 2, 3, 4, 5, 6]
num1, _, _, *_ = list1
print(num1)
print(_)
"""
1, 2, 3, 4, 5, 6 全部解压出来
从左往右赋值给变量 
num1 = 1
_ = 2
_ = 3
_ = [4, 5, 6]
1
[4, 5, 6]
"""

4.练习

1.将值10一次性赋值给变量名x、y、z

2.互换它们的值
x = 10
y = 20

3.我们只需要将列表中的字符串一次性赋值给一个变量名
name = ['kid', 'qqq', 'aa',1 ,2]
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值