python解包常用操作

👋 前言

简介:解包是一种在Python中将可迭代对象(如列表、元组)拆分为单独变量的技术。通过解包,可以方便地将可迭代对象的元素分配给多个变量,从而简化代码并提高可读性。

💡 正文

1 基本解包

1.1 元组和列表
1.1.1 基础解包方式
tup = (1, 2, 3)
a, b, c = tup
print(f"a:{a},b:{b},c:{c}")

# a:1,b:2,c:3

lst = [1, 2, 3]
a, b, c = lst
print(f"a:{a},b:{b},c:{c}")

# a:1,b:2,c:3
1.1.2 拓展解包
tup = (1, 2, 3, 4, 5)
a, *b, c = tup
print(f"a:{a},b:{b},c:{c}")

# a:1,b:[2, 3, 4],c:5

lst = [1, 2, 3, 4, 5]
a, *b, c = lst
print(f"a:{a},b:{b},c:{c}")

# a:1,b:[2, 3, 4],c:5
1.1.3 忽略元素
numbers = (1, 2, 3, 4, 5)
num1, _, num3, _, num5 = numbers
print(f"num1:{num1},num3:{num3},num5:{num5}")

# num1:1,num3:3,num5:5

numbers = [1, 2, 3, 4, 5]
num1, _, num3, _, num5 = numbers
print(f"num1:{num1},num3:{num3},num5:{num5}")

# num1:1,num3:3,num5:5
1.1.4 嵌套解包
stu = ("张三", 18, "男", ("四川", "中国"))
name, age, sex, (province, country) = stu
print(f"name:{name},age:{age},sex:{sex},province:{province},country:{country}")

# name:张三,age:18,sex:男,province:四川,country:中国

stu = ["张三", 18, "男", ["四川", "中国"]]
name, age, sex, [province, country] = stu
print(f"name:{name},age:{age},sex:{sex},province:{province},country:{country}")

# name:张三,age:18,sex:男,province:四川,country:中国
1.2 字典
1.2.1 基础解包方式
stu = {"id": 1001, "name": "张三", "age": 18}
id, name, age = stu.values()
print(f"id:{id}, name:{name}, age:{age}")

# id:1001, name:张三, age:18
1.2.2 zip函数拓展解包
k = ["id", "name", "age"]
v = [1001, "张三", 18]
d = dict(zip(k, v))
id, name, age = d.values()
print(f"id:{id}, name:{name}, age:{age}")

# id:1001, name:张三, age:18
1.2.3 忽略元素
stu = {"id": 1001, "name": "张三", "age": 18}
id, name, _ = stu.values()
print(f"id:{id}, name:{name}")

# id:1001, name:张三
1.3 解包函数返回值
def get_stu_info():
    return '张三', 18

name, age = get_stu_info()
print(f"name:{name},age:{age}")

#name:张三,age:18
1.4 迭代遍历
stu_info = [('张三', 18), ('李四', 19), ('王五', 20)]

for name, age in stu_info:
    print(f'{name}: {age}')
    
# 张三: 18
# 李四: 19
# 王五: 20

2 异常处理

2.1 判断

防止解包失败,通过默认值解决

lst = [1, 2]
a, b, c = lst[0], lst[1] if len(lst) > 1 else None, None
print(f"a:{a},b:{b},c:{c}")
2.2 异常捕获处理

通过tryexcept块,来捕获可能发生的异常错误

lst = [1, 2]
try:
    a, b, c = lst
except ValueError as e:
    print(f"错误原因: {e}")
    
# 错误原因: not enough values to unpack (expected 3, got 2)

🎉 欢迎关注我的公众号
微信公众号

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值