数据结构和算法——将序列分解为单独的变量

①问题:假如有一个包含N多个元素的元组或者序列,现在想分解为N个单独的变量。

1 L = (4, 5)
2 x, y = L
View Code

②进阶篇:

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
View Code

那么接下来问题来了,这个是知道列表具体多少的情况下去实现的,假如说未知呢?那就会用到*表达式去分解可迭代对象了

*式语法在迭代一个边长的元组序列时候相当有用的,撅个例子:

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)
View Code
没有过不去的坎,只有没加够的油!
原文地址:https://www.cnblogs.com/zhoulixiansen/p/9126361.html