元组

元组的应⽤场景

思考:如果想要存储多个数据,但是这些数据是不能修改的数据,怎么做?

答:列表?列表可以⼀次性存储多个数据,但是列表中的数据允许更改。

  1. num_list = [10, 20, 30]
  2. num_list[0] = 100

定义元组

⼀个元组可以存储多个数据,元组内的数据是不能修改的。

  1. # 多个数据元组
  2. t1 = (10, 20, 30)
  3. # 单个数据元组
  4. t2 = (10,)

注意:如果定义的元组只有⼀个数据,那么这个数据后⾯也好添加逗号,否则数据类型为唯⼀的

这个数据的数据类型

  1. t2 = (10,)
  2. print(type(t2)) # tuple
  3. t3 = (20)
  4. print(type(t3)) # int
  5. t4 = ('hello')
  6. print(type(t4)) # str

常⻅操作

按下标查找数据

  1. tuple1 = ('aa', 'bb', 'cc', 'bb')
  2. print(tuple1[0]) # aa

index():查找某个数据,如果数据存在返回对应的下标,否则报错,语法和列表、字符串的index⽅法相同

  1. tuple1 = ('aa', 'bb', 'cc', 'bb')
  2. print(tuple1.index('aa')) # 0

count():统计某个数据在当前元组出现的次数

  1. tuple1 = ('aa', 'bb', 'cc', 'bb')
  2. print(tuple1.count('bb')) # 2

len():统计元组中数据的个数。

  1. tuple1 = ('aa', 'bb', 'cc', 'bb')
  2. print(len(tuple1)) # 4

注意:元组内的直接数据如果修改则⽴即报错

  1. tuple1 = ('aa', 'bb', 'cc', 'bb')
  2. tuple1[0] = 'aaa'

但是如果元组⾥⾯有列表,修改列表⾥⾯的数据则是⽀持的

  1. tuple2 = (10, 20, ['aa', 'bb', 'cc'], 50, 30)
  2. print(tuple2[2]) # 访问到列表
  3. # 结果:(10, 20, ['aaaaa', 'bb', 'cc'], 50, 30)
  4. tuple2[2][0] = 'aaaaa'
  5. print(tuple2)