解压赋值可以用在任何可迭代对象上面,而不仅仅是列表或者元组。 包括字符串,文件对象,迭代器和生成器。
代码如下:
a, b, c, d, e = [1, 2, 3, 4, 5]
>>> a
>>> 1
>>> e
>>> 5
a, b, c = {1: 2, 3: 4, 5: 6}
>>> a
>>> 1
>>> b
>>> 3
要注意的是变量个数和可迭代对象的个数相等
如果个数不相等的情况下,但是想方便地赋值,可以采用增加变量数量的方式进行占位,到时再把这些变量丢弃(要注意变量名)
或者可以采用 * 的方式赋值
Python中,()会把接收到的参数形成一个元组,而(*)则会把接收到的参数存入一个字典
代码如下:
*a, b, c = [1, 2, 3, 4, 5]
print(*a,a)
>>> 1 2 3 [1, 2, 3]
a, *b, c = [1, 2, 3, 4, 5]
print(*b)
>>> 2 3 4
a, b, *c = [1, 2, 3, 4, 5]
print(*c)
>>> 3 4 5
[*a] = [1, 2, 3, 4, 5]
print(a)
>>> [1, 2, 3, 4, 5]
注意此时*a 为多个参数,而a为一个列表参数
网友评论