python解包赋值

复制代码
x = [1, 2]
a, b = [1, 2]       #解包赋值 ,元组可以解包赋值, 列表可以解包赋值,字符串也可以
print(x)#[1, 2]
print(a)#1
print(b)#2

c, d, *e = [5, 6, 7, 8, 9]
print(c)#5
print(d)#6
print(e)#[7, 8, 9]

# 从而引申到循环变量的赋值
stu = {'name':'lfj',  'age':18 }
print(stu.items())  #dict_items([('name', 'lfj'), ('age', 18)])
for item in stu.items():
    print(item)
    # ('name', 'lfj')
    # ('age', 18)

# 这里就运用了解包赋值
for key, value in stu.items():
    print(key, value)
    # name lfj
    # age 18
复制代码

 

如果变量少于值的数量,就会报错,这里可以用到*来接收,例如f,*g=[10,11,12]

 

 

在Python中,将变量前加一个星号(*)可以用于以下几个用途:

1. 展开可迭代对象: 

当一个可迭代对象(如列表或元组)作为函数的参数时,可以通过在变量前加星号来展开该可迭代对象,将其元素作为单独的参数传递给函数。 

例如:

numbers = [1, 2, 3, 4, 5]
print(*numbers)  # 输出:1 2 3 4 5

2 .解压可迭代对象:

将一个可迭代对象的元素解压赋值给多个变量时,可以使用星号来接收剩余的元素。

例如:

numbers = [1, 2, 3, 4, 5]
first, *rest = numbers
print(first)  # 输出:1
print(rest)  # 输出:[2, 3, 4, 5]

3. 在函数定义时指定可变长度参数: 

在函数定义时,可以使用星号来指定一个可变长度参数,即接受任意数量的参数,并将它们作为一个元组传递给函数。 

例如:

def print_numbers(*args):
    print(type(args))   # <class 'tuple'>
    print(args) # (1, 2, 3, 4, 5)
    for num in args:
        print(num)
print_numbers(1, 2, 3, 4, 5)  # 输出:1 2 3 4 5

 

 4 .解包赋值给函数参数

复制代码
a = ('lfj', 18)
def fun2(name, age):
    print('姓名:', name)#姓名: lfj
    print('年龄:', age)#年龄: 18
def fun1(a):
    # print(type(a))  #<class 'tuple'>
    # print(a)    #('lfj', 18)
    # print(*a)   #lfj 18
    fun2(*a)
fun1(a)
复制代码

 

posted @   勋勋的大宝贝  阅读(480)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
点击右上角即可分享
微信分享提示