【Python】基本数据类型--元组

一、定义

元组是有序的对象集合,使用小括号( )包围,元素之间用逗号分隔

元组是不可变的,不可以随时添加或删除元素

元组是异构的,可以包含不同类型的数据

元组中允许出现重复元素

二、创建

  • 直接使用逗号分隔
  • 通过小括号创建
  • 通过构造方法tuple()创建
# 直接逗号分隔
t1 = 1,
print(t1)            # 输出:(1,)
t1 = 1, "2", True
print(t1)            # 输出:(1, "2", True)

# 小括号创建
t2 = ()
print(t2)            # 输出:()
t2 = (1, "2", True)
print(t2)            # 输出:(1, "2", True)

# 构造方法tuple()创建
t3 = tuple()
print(t3)            # 输出:()
t3 = tuple("good")   # 字符串、元组、列表、集合、字典等均可
print(t3)            # 输出:('g', 'o', 'o', 'd')

# 注意:单元素元组,逗号不可或缺
t4 = 'a',
print(type(t4))      # 输出:<class 'tuple'>
t4 = (1,)
print(type(t4))      # 输出:<class 'tuple'>
t4 = (1)
print(type(t4))      # 输出:<class 'int'>

三、元组使用

1、索引

因为元组是有序的,可以通过索引取到列表中对应位置的值。

  • 正向索引,编号从0开始。
  • 反向索引,编号从-1开始。

写法:tuple[index]

tup = (1, 2, 3, 4, 5)
print(tup[0])        # 输出:1
print(tup[-1])       # 输出:5

2、切片

在索引的基础上,不只取单个值,可以取元组的一段。

写法:tuple[start: stop: step]

  • start:指示开始索引值,默认为0
  • stop:指示结束索引值(不包括结束索引值本身),默认取最大索引值。
  • step:步长值,默认为1。

注:切片遵循前闭后开原则,strat值从start值本身开始,stop取到stop的前一个值。

tup = tuple("good boy")
print(tup[0:-1:1])    # 输出:['g', 'o', 'o', 'd', ' ', 'b', 'o']
print(tup[2:4])       # 输出:['o', 'd'],省略step    
print(tup[:4])        # 输出:['g', 'o', 'o', 'd'],省略start、step
print(tup[2:])        # 输出:['o', 'd', ' ', 'b', 'o', 'y'],省略stop、step
print(tup[::-2])      # 输出:['y', 'b', 'd', 'o'],省略start、stop,逆序、步进2打印。

* 元组的索引和切片的使用方法同列表

四、常用方法

1、index()

返回与目标元素相匹配的首个元素的索引

扫描二维码关注公众号,回复: 16308491 查看本文章

写法:tuple.index(item)

入参:对象item

返回:对象item的索引值

目标必须在元组中存在,否则会报ValueError错误

tup = ("Java", "Python", "R", "Go")
print(tup.index('Python'))   # 输出:1
print(tup.index('P'))        # ValueError: tuple.index(x): x not in tuple

2、count()

返回某个元素出现的次数

写法:tuple.count(item)

入参:对象item

返回:对象item出现的次数

tup = ("Java", "Python", "R", "Go", "R", "R")
print(tup.count('R'))   # 输出:3
print(tup.count('P'))   # 输出:0     

五、元组解包

把一个可迭代对象里的元素,一并赋值到由对应的变量组成的元组中

tup = 1, 2, 3

# 传统逐个赋值的方式
a = tup[0]
b = tup[1]
c = tup[2]
print(a, b, c)    # 输出:1 2 3

# 解包方式赋值
a, b, c = tup
print(a, b, c)    # 输出:1 2 3

猜你喜欢

转载自blog.csdn.net/Yocczy/article/details/132021335