Python中的tuple元组(附带实例)
元组(tuple)是一个不可变的 Python 对象序列。元组变量的赋值要在定义时就进行,定义时赋值之后就不允许修改了。
示例代码如下:
包含多个项目的文字元组可以分配给单个对象。当发生这种情况时,就好像元组中的项目已经“打包”到对象中,示例代码如下:
将元组中的元素分别赋给变量称为拆包,示例代码如下:
包装和拆包可以合并为一个语句,以进行复合分配,示例代码如下:
可以构建一个由元组组成的列表,示例代码如下:
可以使用命名元组给元组中的元素起一个有意义的名字,示例代码如下:
示例代码如下:
tup1 = ('physics', 'chemistry', 1997, 2000) tup2 = (1, 2, 3, 4, 5, 6, 7) print("tup1[0]:", tup1[0]) print("tup2[1:5]:", tup2[1:5])通常将元组用于异构(不同)数据类型,将列表用于同类(相似)数据类型。
包含多个项目的文字元组可以分配给单个对象。当发生这种情况时,就好像元组中的项目已经“打包”到对象中,示例代码如下:
>>> t = ('foo', 'bar', 'baz', 'qux')
将元组中的元素分别赋给变量称为拆包,示例代码如下:
>>> (s1, s2, s3, s4) = ('foo', 'bar', 'baz', 'qux') >>> s1 'foo' >>> s2 'bar' >>> s3 'baz' >>> s4 'qux'
包装和拆包可以合并为一个语句,以进行复合分配,示例代码如下:
>>> (s1, s2, s3, s4) = ('foo', 'bar', 'baz', 'qux') >>> s1 'foo' >>> s2 'bar' >>> s3 'baz' >>> s4 'qux'
可以构建一个由元组组成的列表,示例代码如下:
>>> pairs = [("a", 1), ("b", 2), ("c", 3)] >>> for a, b in pairs: print(a, b) a 1 b 2 c 3
可以使用命名元组给元组中的元素起一个有意义的名字,示例代码如下:
import collections # 声明一个名为 Person 的命名元组,这个元组包含 name 和 age 两个键 Person = collections.namedtuple('Person', 'name age') # 使用命名元组 bob = Person(name='Bob', age=30) print('Representation:', bob) jane = Person(name='Jane', age=29) print('Field by name:', jane.name) print('Fields by index:') for p in [bob, jane]: print('{} is {} years old'.format(*p))运行结果为:
Representation: Person(name='Bob', age=30)
Field by name: Jane
Fields by index:
Bob is 30 years old
Jane is 29 years old