创建元组
>>> tup3 = "a", "b", "c", "d"; # 不需要括号也可以
tup1 = ();空元组
元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用:
>>> tup1 = (50)>>> type(tup1) # 不加逗号,类型为整型>>> tup1 = (50,)>>> type(tup1) # 加上逗号,类型为元组
tuple元素不可变有一种特殊情况,当元素是可变对象时。对象内部属性是可以修改的!tuple的不可变限制只是在一个纬度上:元素的类型。实现理解,tuple的元素所保存的内容(数值或内存地址)是不允许修改的,但地址映射的对象自身是可以修改的。
Python元组的升级版本 -- namedtuple(具名元组)
因为元组的局限性:不能为元组内部的数据进行命名,所以往往我们并不知道一个元组所要表达的意义,所以在这里引入了 collections.namedtuple 这个工厂函数,来构造一个带字段名的元组。具名元组的实例和普通元组消耗的内存一样多,因为字段名都被存在对应的类里面。这个类跟普通的对象实例比起来也要小一些,因为 Python 不会用 __dict__ 来存放这些实例的属性。下面来看看声明一个具名元组及其实例化的方法:
import collections#two ways to define the field name for namedtuple#User = collections.namedtuple('User', ['name', 'age', 'id'])User = collections.namedtuple('User', 'name age id')user = User('tester', '22', '464643123')print(user)
输出结果:
User(name='tester', age='22', id='464643123')