首页 > 编程笔记 > Python笔记 阅读:1

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

相关文章