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变量前加星号
在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)