Python 元祖(tuple)是可迭代的序列类型,它属于Python集合类型的一种。元祖是一个有序的集合,因此它保留了定义它们的元素的顺序,那么元祖元素是不可修改的。

元祖在外面使用括号(),中间元素使用逗号分隔的方式包含一个或多个不同类型的数据项,例如: t = (element1, element2, element3)

python元祖的声明

tpl=() # 定义空元祖
print(tpl)  #输出: ()

tpl2 = ("baidu", "sohu", "yxjc123", "jd") # 字符串类型的元祖
print(tpl2)  #('baidu', 'sohu', 'yxjc123', 'jd')

tpl3 = (1, 2, 3, 4, 5) # 定义整数类型的元祖
print(tpl3)  #输出:(1, 2, 3, 4, 5)

tpl4=(1, "a", "b", 3.14, True)  # 定义不同类型的元祖
print(tpl4)  #输出:(1, 'a', 'b', 3.14, True)

我们也可以将括号()省略掉,这样定义也是可以的,但是不建议这样做,因为它看起来不是太直观。

tpl2 = "baidu", "sohu", "yxjc123", "jd" # 字符串类型的元祖
print(tpl2)  #('baidu', 'sohu', 'yxjc123', 'jd')

tpl3 = 1, 2, 3, 4, 5 # 定义整数类型的元祖
print(tpl3)  #输出:(1, 2, 3, 4, 5)

tpl4=1, "a", "b", 3.14, True  # 定义不同类型的元祖
print(tpl4)  #输出:(1, 'a', 'b', 3.14, True)

注意:元祖元素只有一个的时候,我们需要在后面加上逗号,以防止数据类型变为字符串类型了。

tpl = ('yxjc') # 字符串类型
print(tpl)  #输出: 'yxjc'
print(type(tpl))  #输出: <class 'string'>

tpl = ('yxjc',) # 后面加上逗号
print(tpl)  #输出: (yxjc)
print(type(tpl))  #输出: <class 'tuple'>

输出:

yxjc
<class 'str'>
('yxjc',)
<class 'tuple'>

访问Python元祖元素

可以使用方括号[],内部加索引值的方式访问列表的每个元素,当然索引值不能超过列表的长度-1。

这个和Python列表的方式是一致的。

tpl = ("baidu", "sohu", "yxjc123", "jd") # 字符串类型的元祖
print(tpl[0])
print(tpl[1])
print(tpl[2])
print(tpl[3])
通过负数访问元祖元素:
tpl = ("baidu", "sohu", "yxjc123", "jd") # 字符串类型的元祖
print(tpl[-1])
print(tpl[-2])
print(tpl[-3])
print(tpl[-4])

修改或删除元祖元素

因为元祖保留了定义它们的元素的顺序,所以元祖的元素是不可修改和删除的

不过,您可以使用del关键字删除整个元组。

tpl = ("baidu", "sohu", "yxjc123", "jd") # 字符串类型的元祖
tpl[0] = 'qq' #throws error
del tpl[0] #throws error
del tpl #删除整个元祖

Python元祖类型转换

下面是各种类型转元祖的方法:

tpl = tuple('yxjc123') # 字符串转元祖
print(tpl) #输出: ('y', 'x', 'j', 'c', '1', '2', '3')

tpl = tuple([1,2,3,4,5]) # 列表转元祖
print(tpl) #输出: (1,2,3,4,5)

tpl = tuple({1,2,3,4,5}) # 集合转元祖
print(tpl)  #输出: (1,2,3,4,5)

tpl = tuple({1:"One",2:"Two"}) # 字典转元祖
print(tpl)  #输出: (1,2) 

Python元祖方法

元组没有列表中的增、删、改的操作,只有查的操作。

介绍python元组的方法函数

函数 & 方法描述
len(tuple)返回元组元素个数,内置函数
max(tuple)返回元组元素最大值,内置函数
min(tuple)返回元组元素最小值,内置函数
tuple(iterable)将可迭代对象转换为元组,若 iterable 为空则创建空元组
tuple.count(obj)统计某个元素在元组中出现的次数
tuple.index(obj)从元组中找出某个元素第一次出现的索引位置