下面是Python使用元组和命名元组的完整攻略:
Python使用元组
什么是元组
元组(tuple)是Python中的一种数据类型,类似于列表(list),但是不可修改。元组用一对圆括号()表示,元素之间用逗号,隔开。例如:
tup = (1, 2, 3, 4, 5)
元组的操作
元组支持的操作与列表相似,包括索引、切片、拼接等。
索引
元组中的元素可以通过下标进行访问,下标从0开始。例如:
tup = (1, 2, 3, 4, 5)
print(tup[0]) # 输出1
print(tup[-1]) # 输出5
切片
元组也支持切片操作,同样是左闭右开区间。例如:
tup = (1, 2, 3, 4, 5)
print(tup[1:3]) # 输出(2, 3)
拼接
元组可以使用"+"运算符进行拼接,返回一个新的元组。例如:
tup1 = (1, 2, 3)
tup2 = (4, 5, 6)
tup3 = tup1 + tup2
print(tup3) # 输出(1, 2, 3, 4, 5, 6)
元组的不可变性
元组与列表的最大区别在于,元组不可修改。例如:
tup = (1, 2, 3, 4, 5)
tup[0] = 100 # 报错,元组不可修改
如何使用元组
元组通常用来存储一些不需要修改的常量值,例如一个长方形的长和宽可以存储在一个元组中。
Python使用命名元组
什么是命名元组
命名元组(namedtuple)是Python中collections模块中的一种数据类型,是元组的子类。命名元组可以通过名称来访问元素,避免了元组下标的使用,代码更加易读。例如:
from collections import namedtuple
Person = namedtuple('Person', ['name', 'age'])
p = Person(name='John', age=30)
print(p.name) # 输出John
命名元组的定义
命名元组的定义方法与元组类似,区别在于使用collections模块中的namedtuple函数来定义。例如:
from collections import namedtuple
Person = namedtuple('Person', ['name', 'age'])
定义命名元组的语法是:
namedtuple(typename, field_names, *, rename=False, defaults=None, module=None)
- typename: 定义的命名元组的名称。
- field_names: 定义命名元组的属性列表,可以是一个由字符串组成的列表或由逗号分隔的字符串。
命名元组的使用
命名元组的使用方法与元组类似,可以使用索引或名称作为下标来访问元素。例如:
from collections import namedtuple
Person = namedtuple('Person', ['name', 'age'])
p = Person(name='John', age=30)
print(p.name) # 输出John
print(p[0]) # 输出John
命名元组也支持所有元组的操作,包括索引、切片、拼接等。
命名元组的应用
命名元组通常用来定义一些简单的类,例如一个二维平面上的点可以用命名元组来表示:
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(x=1, y=2)
print(p.x, p.y) # 输出1 2
除了为属性起名字之外,命名元组还可以有效地减少硬编码的常量值。例如:
from collections import namedtuple
Options = namedtuple('Options', ['debug', 'verbose'])
options = Options(debug=False, verbose=True)
这样可以将原本使用布尔型常量的代码改写为:
if options.debug:
print('Debugging is on.')
if not options.verbose:
print('Silent mode.')
这样可读性更强。
以上就是Python使用元组和命名元组的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 使用元组和命名元组 - Python技术站