Python之元组

对于容器型数据类型list,无论谁都可以对其增删改查,那么有一些重要的数据放在list中是不安全的,所以需要一种容器类的数据类型存放重要的数据,创建之初只能查看而不能增删改,这种数据类型就是元组。元组和列表相似,元组使用括号,元组的值一旦初始化便不能进行修改。

1.1初始元组

t = ('a', 'b', 'c', 1, 2, 3)
print(t)
print(type(t))

注:定义只含有一个元素的元组时,需要在元素后面添加一个逗号,tuples=(1,),以免产生歧义。

1.2获取数据

获取数据,在获取数据时与列表完全相同

tuples = ('zhangsan', 'lisi', 'bo xiao yuan', 'zhaolaowu', 'wanglaoliu', 'yanlaoqi')
print(tuples[0]) # zhangsan,打印第0位置的值
print(tuples[-1]) # yanlaoqi,打印最后一个元素的值
print(tuples[-2:]) # ('wanglaoliu', 'yanlaoqi'),打印最后两个元素的值
print(tuples[:-2]) # ('zhangsan', 'lisi', 'bo xiao yuan', 'zhaolaowu'),打印第0索引位置的值到倒数第2个元素的值(不包括倒数第2个元素的值)
print(tuples[:]) # ('zhangsan', 'lisi', 'bo xiao yuan', 'zhaolaowu', 'wanglaoliu', 'yanlaoqi'),打印所有的值

1.3修改元组

# 元组在创建后内容不可变
# t[0] = 2
# 写入数据的函数同样不被支持
# t.insert('f')

元组中的元组的值虽然不允许修改,但是可以把元组进行连接组合:

tu1 = ('huashan','songshan')
tu2 = ('taishan',)
tu3 = tu1 + tu2
print(tu3) # ('huashan', 'songshan', 'taishan')

注:如果元组内持有列表,那么列表的内容是允许被修改的。

tuples = (1, 2, 3, [4, 5, 6])
tuples[3][1] = 11
print(tuples) # (1, 2, 3, [4, 11, 6])

1.4删除元组

元组中的元素虽然不可以进行修改,但是可以把整个元组删除掉:

tuples = ('zhangsan', 'lisi', 'bo xiao yuan', 'zhaolaowu', 'wanglaoliu', 'yanlaoqi')
del tuples
print(tuples) # NameError: name 'tuples' is not defined

1.5循环遍历

在Python中,可以使用for循环遍历所有非数字类型的变量:列表、元组、字典以及字符串。但是在实际开发中,除非能够确认元组中的数据类型,否则针对元组的循环遍历需求并不是很多。

names = ('zhangsan', 'lisi', 'bo xiao yuan', 'zhaolaowu', 'wanglaoliu', 'yanlaoqi')
for name in names:
print(name)

1.6元组的应用场景

在实际开发中,元组的应用场景为:

  1)函数的参数和返回值,一个函数可以接收任意多个参数,或者一次返回多个数据。

  2)格式字符串,格式化字符串后面的()本质上就是一个元组。

  3)重要数据,用户名,密码,个人信息,不想让别人改动的一些数据,存在元组中。

  4)元组的拆包。分别赋值。

a, b = (1, 2) # 多一个少一个都不行
print(a,b)
c = (1,2)
a,b = c
print(a,b)
info_tuple = (18, 175, 75.50)
# 格式化字符串后面的'()'本质上就是元组
print("小明的年龄%s,身高%s,体重%.2f" % info_tuple) # 小明的年龄18,身高175,体重75.50

1.7元组和列表之间的转换

  • 使用list函数可以把元组转换成列表。
    • list(元组)
  • 使用tuple函数可以把列表转换成元组。
    • tuple(列表)

1.8列表与元组的区别与应用场景

1.9元组常用方法

tuples = ('zhangsan', 'lisi', 'bo xiao yuan', 'zhaolaowu', 'wanglaoliu', 'yanlaoqi', 'lisi')
print(tuples.index('wanglaoliu')) #,4,返回指定值的索引
print(tuples.count('lisi')) # 2,返回指定值出现的次数
print(max(tuples)) # zhaolaowu,返回元组的最大值
print(min(tuples)) # bo xiao yuan,返回元组的最小值
print(len(tuples)) # 7,返回元组的长度
原文地址:https://www.cnblogs.com/zhuzhaoli/p/10855081.html