元组类型(tuple)
元组是python的一种序列类型,跟字符串和列表一样,序列类型都有切片操作,是 可迭代的对象(能够用循环一个个的获取里面的值)。其中,字符串和元组是不可 变类型(就是不可以修改的)。
元组的创建
# 创建空元组,其实没啥意义 t1 = tuple() t2 = () # 创建自定义元组 t3 = tuple(range(5)) t4 = (1, 2, 3, 4, 5) t5 = tuple([1,2,3,4,5]) t6 = ('a', 'b', 'c', 'd', 'e') t7 = tuple('1234abcd') t8 = (1, 2, 3, 'a', 'b', [4, 5], 89.9, (3, 5)) t9 = 1,2,4,5 # 这个也是元组,可以不用写括号,默认会添加 # 单元素元素问题, 一定要加逗号 t10 = (6,)
元组的相关操作
获取元组中的元素
通过下标获取
t1 = tuple(range(5)) t1[0]
通过切片获取
t1 = tuple(range(5)) t2 = t1[2:]
通过for循环来遍历元组
t1 = tuple('abcdefg') for t in t1: print t
获取元组中元素的下标
t = tuple('abcde') # index返回元素在元组中的位置,如果不存在则会抛出ValueError异常 t.index('a')
统计某个元素出现的次数
t = tuple('abaaacde') # count统计元素在元组中出现的次数,如果不存在,则为0 t.count('a')
两个元组相加
t1 = tuple("abcde") t2 = tuple(range(5)) # 通过加号(+)可以将两个元组中的元素合并在一起,形成一个新的元组 t3 = t1 + t2
元组重复
t1 = tuple("abcde") # 通过星号(*)可以将元组中的元素重复N次,形成一个新的元组 t2 = t1 * 3
元组的解包
元组解包其实就是将元组里面的值分别赋值给不同的变量,元组解包一般用于函数 的多返回值时。或者是对字典以及二维数组进行遍历时。
items = ('http://www.baidu.com','百度一下,你就知道','已收录','2020-9-14') # url = items[0] # title = items[1] # is_index = items[2] # index_tiem = items[-1] url,title,is_index,index_tiem = items print(url)
执行结果
http://www.baidu.com
解包不仅仅对元组适用,对列表也可以
x,y = [1,3]
需要注意以下情况
t = (1,2,3,4,5) x,y=t print(t)
执行以上程序会报错
ValueError: too many values to unpack (expected 2)
因为元组里面有5个值,但是解包时只给了2个变量,针对此情况可以用*解决
t = (1,2,3,4,5) x,*y=t print(x,y,type(x),type(y))
执行结果
1 [2, 3, 4, 5] <class 'int'> <class 'list'>
可以把*理解为后面没有给到变量的值统统打包一起
总结
- 元组是不可变类型,因此一旦创建,程序运行期间就不可以添加,修改,删除 里面的元素
- 元组是序列类型,因此可以通过迭代的方式来获取到里面的元素
- 单元素的元组一定要记得加逗号,否则就不是元组
- 函数多返回值时,默认返回的就是一个元组类型