1 元组的拆包
- 平行赋值
x, y = (12, 5)
- * 号拆包
* 运算符把一个可迭代的对象拆开作为函数的参数
>>> t=divmod(20,8)
>>> t
(2, 4)
>>> t=(20,8)
>>> divmod(*t)
(2, 4)
>>> t=[20,8]
>>> divmod(*t)
(2, 4)
- 用*来处理剩余的元素
在平行赋值中,*前缀只能用在一个变量名前面,但是这个变量可以出现在赋值表达式的任意位置
>>> a,b,*rest = range(5)
>>> a,b,rest
(0, 1, [2, 3, 4])
>>> a,*middle,b = range(5)
>>> a,middle,b
(0, [1, 2, 3], 4)
2 具名元组
- 创建具名元组
实际上可以理解为创建一个没有操作方法的类
>>> from collections import namedtuple
>>> City = namedtuple('City', 'name country population coordinates')
>>> tokyo = City('Tokyo', 'JP', 36.933, (35.689722, 139.691667))
>>> tokyo
City(name='Tokyo', country='JP', population=36.933, coordinates=(35.689722, 139.691667))
创建的具名元组需要两个参数, 一个是类名, 另一个是类的各个字段的名字。后者可以由数个字符串组成的可迭代的对象,或者由空格分隔开的字段名组成的字符串。