1. 程式人生 > >python 學習彙總24:迭代解包Iterable Unpacking( tcy)

python 學習彙總24:迭代解包Iterable Unpacking( tcy)

迭代解包Iterable Unpacking     
    
===================================================================
# 1.例項1
*a, = range(5);
print(a)                   # [0, 1, 2, 3, 4]
[*a] = range(5);
print(a)                   # [0, 1, 2, 3, 4]
    
*a, b, c = range(5);
print(a,b,c)             # [0, 1, 2] 3 4
a, *b, c = range(5);
print(a,b,c)             # 0 [1, 2, 3] 4
(a, b, *c) = range(5)
print(a,b,c)             # 0 1 [2, 3, 4]
    
seq=range(5)
a, b, c = seq[0], list(seq[1:-1]), seq[-1]
print(a,b,c)            # 0 [1, 2, 3] 4
a, *b, c = seq
print(a,b,c)            # 0 [1, 2, 3] 4
================================================================
# 例項2:
import os
v, filename = os.path.split('/home/test/path/filename.pdf')
# '/home/test/path', 'filename.pdf'
for a, *b in [(1, 2, 3), (4, 5, 6, 7)]: # a=(1, 2, 3);b=[(4, 5, 6, 7)]
    print(b)
    
# [2, 3]
# [5, 6, 7]
================================================================
2.總結:
    1) 星號表示式作為賦值操作物件必須出現在元組或者列表中
    2) 強制表示式都要被賦值
    3) 星號表示式可以為空列表
================================================================