多变量赋值
a = [1,2,(3,4)] b,c,d = a print(b,c,d) b,c,(d,e) = a print(b,c,d,e)
a = "zxc" b,c,d = a print(b,c,d)
z x c
*:集成不定长元素 & 集合型实参展开为多个虚参
record = ('Dave', 'dave@example.com', '773-555-1212', '847-555-1212')
name, email, *phone_numbers = record
name,email,phone_numbers
('Dave', 'dave@example.com', ['773-555-1212', '847-555-1212'])
注意,
- *后修饰的变量无论接收元素多少,一定会返回list数据结构。
- *也可以放在函数实参处,此时会将list的元素展开分别赋值于各个虚参;和上面集成多元素为list相反,此时表示将list展开将元素赋值于多变量。
records = [
('foo', 1, 2),
('bar', 'hello'),
('foo', 3, 4),
]
def do_foo(x, y):
print('foo', x, y)
def do_bar(s):
print('bar', s)
for tag, *args in records:
if tag == 'foo':
do_foo(*args)
elif tag == 'bar':
do_bar(*args)