python的组包拆包

前言

组包 和 拆包 是Python中的一种独有写法。通俗来讲,将多个值封装成一个变量(复合类型数据,如列表,元组,字典)的过程叫组包。将一个变量(容器)拆分成多个变量值的过程叫拆包。
应用场景:

        1.交换变量.

        2.函数可以同时返回多个值

        3. 一次性获取到 元组, 列表, 字典中的每个数据.

   

组包

# 列表
list1 = [11, 22, 33, 44, 55]
# 元组
tuple1 = ('aa', 'bb', 'cc')
# 字典
dict1 = {'name': '张三', 'age': 23}
#字符串
a,b,c='abc'

拆包

# 从 列表 拆包
list1 = [11, 22, 33, 44, 55]
a, b, c, d, e = list1
print(a, b, c, d, e)    
=>11 22 33 44 55

# 从 元组 拆包
tuple1 = ('aa', 'bb', 'cc')
x, y, z = tuple1
print(x, y, z)         
=>aa bb cc

# 从 字典 拆包, 只能获取 键 的值.
dict1 = {'name': '张三', 'age': 23}
k1, k2 = dict1
print(k1, k2)          
=>name age

# 生成器
a,b,c=[i for i in range(3)]
print(a,b,c)
=>0 1 2

# 迭代器
a,b,c=enumerate(['a','b','c'])
print(a,b,c)
=>(0, 'a') (1, 'b') (2, 'c')

注意:如果待赋值变量与可迭代对象数量不一致则会报错,但可用*号表示多个元素。

*可以用于扩展列表,将一个列表中的元素拆分后传递给另一个列表。

#列表拆包中的*
a,*b,c=[1,2,3,4,5]
print(a,b,c)
=>1 [2, 3, 4] 5

#元组拆包中的*
a,*b,c=(1,2,3,4,5)
print(a,b,c)
=>1 [2, 3, 4] 5

#集合拆包中的*
a,*b,c={1,2,3,4,5}
print(a,b,c)
=>1 [2, 3, 4] 5

#字典拆包中的*
a,*b,c={1:'a',2:'b',3:'c',4:'d',5:'e'}
print(a,b,c)
=>1 [2, 3, 4] 5

场景应用

1.交换变量

a=1
b=2
a,b=b,a
print(a,b)
=>2 1

2.函数可以同时返回多个值

2.1 函数同时返回多个值,默认会用元组封装返回值

def fun1():
    return 1,2,3    # 同时返回多个值,默认会用元组封装
num1=fun1()
print(num1)
=>(1, 2, 3)

2.2 可以手动把多个返回值封装成 列表或者集合, 然后返回

def fun2():
    return [1, 2, 3]  # 当然也可以手动把多个值封装成 列表或者集合, 然后返回
num2=fun2()
print(num2)
=>[1, 2, 3]

  3. 一次性获取到 元组, 列表, 字典中的每个数据

见上文

希望可以帮到你,如果对你有帮助,请给我一个三连鼓励一下我好吗😁😁😁

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值