元组的创建
Python的元组与列表类似,不同之处在于元组的元素不能修改。
元组的创建,使用()或在定义变量以后添加一个逗号(,)
tup1 = (1, 2, 3)
tup2 = 123,
print('tup1 = ', tup1, type(tup1))
print('tup2 = ', tup2, type(tup2))
print('tup1[0] = ', tup1[0])
print('tup1[1] = ', tup1[1])
print('tup1[2] = ', tup1[2])
print('tup1[1:] = ', tup1[1:])
print('tup1[-1] = ', tup1[-1])
print('tup1[-2] = ', tup1[-2])
print('tup1[-3] = ', tup1[-3])
运行结果:
tup1[1] = 11
运行结果:
元组修改元素值,运行报错
元组的使用
元组不能改值,不能进行翻转,排序。但是能进行拼接
print("tup1 + tup2 = ", tup1 + tup2)
输出结果:
元组的删除
print(tup2)
del tup2
print(tup2)
元组不能修改元素,但是能删除,不过删除后,再打印会报错,这个大家需要注意。
运行结果:
代码编写,会有智能提示:
元组的操作:长度,复制,最大,最小
print(len(tup1)) # 长度
print(tup1 * 3) # 复制
print('2 in tup1 = ', 2 in tup1) # 查找元素
tup2 = (3, 4, 5)
for i in tup2: # 遍历
print("i = ", i)
运行结果:
元组获取index
print(tup1.index(2))
输出结果:
使用进阶
主要介绍python3去除一些函数,比如cmp函数之后,使用operator进行替代,下面介绍一下使用方法:
import operator
tup3 = (6, 7, 8, 9)
tup4 = (3, 5, 7, 10)
print(type(operator.lt(tup3, tup4)))
print(type(operator.le(tup3, tup4)))
print(type(operator.eq(tup3, tup4)))
print(type(operator.ne(tup3, tup4)))
print(type(operator.ge(tup3, tup4)))
print(type(operator.gt(tup3, tup4)))
print(operator.lt(tup3, tup4)) # 意思是less than(小于)
print(operator.le(tup3, tup4)) # 意思是less and equal(小于等于)
print(operator.eq(tup3, tup4)) # 意思是equal(等于)
print(operator.ne(tup3, tup4)) # 意思是not equal to(不等于)
print(operator.ge(tup3, tup4)) # 意思是greater and equal(大于等于)
print(operator.gt(tup3, tup4)) # 意思是greater than(大于)
输出结果:
每一项比较函数都添加了注释,这里不再做解释。
元组和列表的区别
list和tuple都是一个可以放置任意数据类型的有序集合,都可以存放数字、字符串、对象等。
list和tuple都可以随意嵌套,即定义的时候,可以在列表或者元组中嵌套列表和元组。
元组在创建时,存储在一块固定的内存中。
列表时可变的对象,需要两块存储空间,一块固定用来存储实际的列表,另一块可变的空间用于扩展。
元组的创建和访问要比列表要快,但是不如列表灵活。
比如一些需要保护的数据,就可以选择使用元组,不允许数值的改变。
列表是动态的,长度大小不固定,可以随意的增加、删除、修改元素。
元组是静态的,长度在初始化的时候就已经确定不能更改,更无法增加、删除、修改元素。
如果数据发生变更的可能性不大,就用元组存储,如果数据是需要频繁的进行数据的修改增加,就使用列表。