最基本的 tuple unpacking 用法:
coordinates = (1.0, 2.0) lat, lon = coordinates
而用加入 * 可以 unpack 大於一個的引數 [1]:
a, b, *rest = range(5) # (0, 1, [2, 3, 4]) a, b, *rest = range(2) # (0, 1, []) a, *body, c = range(4) # (0, [1, 2], 3)
Named Tuples
利用 collections.namedtuple 可以將 tuple 加入每個 field 的名字以及其 class 的名字,另外也有一些相關的函數可以操作此 class,像是 _fields、_make、_asdict:
from collections import namedtuple Person = namedtuple('Person', 'name age') p = Person('John', 20) print(p.name) # John print(p.age) # 20 print(Person._fields) # ('name', 'age') p2_data = ('Doe', 30) p2 = Person._make(p2_data) # Initiate a named tuple p3 = Person(*p2_data) # Same to line 8 print(p2._asdict())
沒有留言:
張貼留言