您的位置:

Python中的元组:不可变序列

一、元组基础

元组是Python中的一种不可变序列,可以用圆括号()包含多个数据项。元组中的每个数据项可以是所有数据类型,包括元组本身。

#创建元组
tuple1 = (1, 2, 3) 
tuple2 = ('apple', 'banana', 'orange')
tuple3 = ('python', 3.7, True)

#获取元素
print(tuple1[0])  #输出1
print(tuple2[-1]) #输出'orange'

元组可以进行切片操作和使用in、not in进行成员测试。

#切片
print(tuple1[1:3])  #输出(2, 3)

#成员测试
print('apple' in tuple2)  #输出True
print(False not in tuple3) #输出True

元组是不可变的,因此无法对元组中的元素进行增、删、改操作。但可以合并、重复使用、删除整个元组。

tuple4 = tuple1 + tuple2  #合并元组
print(tuple4)  #输出(1, 2, 3, 'apple', 'banana', 'orange')

tuple5 = tuple1 * 3  #重复使用元组
print(tuple5) #输出(1, 2, 3, 1, 2, 3, 1, 2, 3)

del tuple3  #删除整个元组

二、元组的优点

与列表(list)相比,元组具有以下优点:

1、元组占用的内存空间小,元组中的数据不可修改,因此不需要额外的空间来存储修改历史记录。

2、元组可以作为字典(dict)中的键值使用,而列表不行。

3、在函数返回值时,返回一个元组可以同时返回多个值,而列表要转化为元组才能这样使用。

#元组作为字典键值使用
dict1 = {('apple', 'python'): 100}
print(dict1[('apple', 'python')])  #输出100

#函数返回多个值
def test():
    return 1, 2, 3

tuple6 = test() #返回元组(1, 2, 3)
print(tuple6)

三、元组的使用场景

元组的应用场景非常广泛,主要包括以下几个方面:

1、元组可以表示一个不变的记录,如时间戳。

time = ('2022', '12', '31', '23', '59', '59')
print('当前时间为%s年%s月%s日%s时%s分%s秒' % time)  #输出当前时间

2、元组存储一个可以保护数据不被修改的数据序列。

3、元组可以作为字典(dict)中的键值使用。

4、在函数返回值时,返回一个元组可以同时返回多个值。

#输出文件的路径、文件名和扩展名
def get_file_info(filename):
    file_info = filename.split('.')
    return file_info[0], file_info[1], file_info[2]

file_tuple = get_file_info('document.docx')
print('文件路径:%s,文件名:%s,扩展名:%s' % file_tuple)  
#输出文件路径:document,文件名:docx,扩展名:filename

四、结语

元组是Python中不可变序列的一种,可以表示一个不变的记录,保护数据不会因代码的错误修改,同时可以用于作为字典的键值和函数的返回值。掌握元组的基础操作和使用场景对于Python编程非常重要。