①问题:假如有一个包含N多个元素的元组或者序列,现在想分解为N个单独的变量。
1 L = (4, 5) 2 x, y = L
②进阶篇:
data = ['sb', '大铁锤', '51', (2018, 6, 2)] a, b, c, date = data a='sb' b='大铁锤' c=51 date=(2018, 6, 2)
③
data = ['sb', '大铁锤', '51', (2018, 6, 2)] a, b, c, (year, mon, day) = data year = 2018 mon = 6 day = 2
那么接下来问题来了,这个是知道列表具体多少的情况下去实现的,假如说未知呢?那就会用到*表达式去分解可迭代对象了
*式语法在迭代一个边长的元组序列时候相当有用的,撅个例子:
records = [ ('foo', 1, 2), ('bar', 'hi'), ('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)