企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
[TOC] ---- # Python基础-元组 ## 什么是元组: 元组的使用与列表类似. 不同之处: 1. 不能修改 2. 不能追加 2. 不能删除 3. 不能反转 4. 元组使用小括号 5. 列表使用方括号。 相同之处: 1. 元素都是有序的 2. 可以重复的 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。 从上面的简单比较似乎可以认为,tuple就是一个融合了部分list和部分str属性的杂交产物。此言有理。 ## 定义元组: 1. 使用逗号的方法: ```python aTuple = 1,2,3 #这样就定义好了一个元组 print(aTuple) #打印:(1, 2, 3) t = 1,"23",[123,"abc"],("python","learn") #元素多样性,近list print(t) #(1, '23', [123, 'abc'], ('python', 'learn')) ``` 2. 使用圆括号的方法: ```python aTuple = (1,2,3) print(aTuple) #打印:(1, 2, 3) aTuple = ('a','b','c','d') print(aTuple) #打印:('a', 'b', 'c', 'd') ``` 3. 使用tuple函数(将列表转为元组): ```python aTuple = [1,2,3] aTuple = tuple(aTuple) print(aTuple) #打印:(1, 2, 3) ``` 4. 定义只有一个元素的元组: ```python aTuple = 12, # 这样就定义号了只有一个元素的元组 bTuple = (12,) #必须要再后面加一个逗号,否则就是一个普通的值了 print(aTuple) #打印:(12,) print(bTuple) #打印:(12,) ``` ## 元组常用操作: 1. 下标操作: ```python aTuple = ('a','b','c') a = aTuple[0] print(a) # a ``` 2. 切片操作:跟列表和字符串的切片操作一样。 ```python aTuple = ('zhiliao',18,'长沙') print(aTuple[0]) #zhiliao print(aTuple[0:2]) #('zhiliao', 18) print(aTuple[::-1]) #('长沙', 18, 'zhiliao') 反向取值 ``` 3. 解组操作: ```python aTuple = ('zhiliao',18) name,age = aTuple print(name,age) #'zhiliao',18 ``` 或者有些时候我们只想要元组中的某个值,不需要所有的值,那么我们可以通过_来作为省略: ```python aTuple = ('zhiliao',18,'长沙') #解包时变量的数量要对上 username1,age2,_ = aTuple print(username1,age2) #zhiliao 18 username,_,_ = aTuple print(username) #zhiliao _,age3,_ = aTuple print(age3) #18 ``` 4. count方法:获取元组中某个值出现的次数,跟列表中的用法相同。 ```python aTuple = ('zhiliao','zhiliao','zhiliao',18,'长沙') #count 统计元素出现的次数 print(aTuple.count('zhiliao')) # 3 ``` 5. index方法:获取元组中某个值的下标,跟列表中的用法相同。 ```python aTuple = ('zhiliao','zhiliao','zhiliao',18,'长沙') #index 元素第一次出现的位置 print(aTuple.index('zhiliao')) # 0 ``` ## 元组存在的意义或应用场景: * 元组在字典中可以当作key来使用,而列表是不可以的。 * 在函数中,有时候要返回多个值,一般采用元组的方式。 ```python def person(): name = 'zhiliao' age = 18 return name,age a_tuple = person() name,age = person() print(a_tuple) #('zhiliao', 18) print(name,age) #zhiliao 18 ``` ```python def per(): return 'zhiliao',18,'python' a_tuple = per() name,age,py = per() name,age,_ = per() print(a_tuple) #('zhiliao', 18) print(name,age,py) #zhiliao 18 python print(name,age) #zhiliao 18 ``` * 在一些不希望用户修改值的场景下使用元组来代替列表。 手册: <a href="https://www.runoob.com/python3/python3-tuple.html" target="_blank ">https://www.runoob.com/python3/python3-tuple.html</a>