栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python初学小知识(四):元组

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python初学小知识(四):元组

Python初学小知识(四):元组
  • 八、元组Tuple
    • 1. 元组与列表
    • 2. 元组不可变
    • 3. 生成只有一个元素的元组
    • 4. 打包和解包
    • 5. 元组的变与不变
    • 6. 转换为元组
    • 7. count()
    • 8. index()

C语言和Python经常弄混,尤其总是忍不住给Python后面加分号……干脆给自己做个笔记省的忘了。。。(小甲鱼那边的)

八、元组Tuple 1. 元组与列表

列表是方括号;元组是圆括号,也可以不带括号,同样是用下标(方括号)获取元素

>>> rhyme = (1,2,3,4,5,'上山打老虎')
>>> rhyme
(1, 2, 3, 4, 5, '上山打老虎')
>>> rhyme = 1,2,3,4,5,'上山打老虎'
>>> rhyme
(1, 2, 3, 4, 5, '上山打老虎')
>>> rhyme[0]  '''使用方括号的下标获取元素,圆括号会报错'''
1
>>> rhyme[-1]
'上山打老虎'
2. 元组不可变

元组是不可变的,不能修改元组,在运行上tuple的性能是list的数倍;不过可以切片,因为切片并没有影响元组本身,用法与列表相同;在元组里面,只能支持“查”的功能;同样可以对元组进行加法和乘法。

>>> nums = (1,6,4,3,5,2,3,5,6,3,9,8,7,4,5)
>>> nums.count(5)
3
>>> nums.index(4)
2

'''同样可以对元组进行加法和乘法'''
>>> s = (1,2,3)
>>> t = (4,5,6)
>>> s + t
(1, 2, 3, 4, 5, 6)
>>> s * 3
(1, 2, 3, 1, 2, 3, 1, 2, 3)
>>> w = s,t
>>> w
((1, 2, 3), (4, 5, 6))  #嵌套元组
>>> [each * 2 for each in s]
[2, 4, 6]  '''列表推导式,但是没有元组推导式,这是一个列表'''
3. 生成只有一个元素的元组
>>> x = (1)
>>> type(x)

>>> x = (1,)
>>> type(x)
  

重点在于加一个逗号,原因是,在整数运算中,用()来表示优先级。而对于多个元素的tuple,则加和不加这个逗号,效果是一样的。

4. 打包和解包
>>> t = (1, 'a', 2.1)  #把整数、字符串、浮点数打包到了t里面
>>> x, y, z = t
>>> x
1
>>> y
'a'
>>> z
2.1

'''用x,y,z解包,也适用于任何的序列类型(列表、字符串)'''
>>> x, y, z = 'boy'
>>> x
'b'
>>> y
'o'
>>> z
'y'  

'''左右两侧数量需要一致,如果不一致:'''
>>> x, *y, z = 'apple'  #没添加*的就是对应一个变量,添加了*的是剩余所有变量
>>> x
'a'
>>> y
['p', 'p', 'l']
>>> z
'e'  

python有一个功能是多重赋值:

>>> x, y = 3, 5
>>> x
3
>>> y
5

其背后的逻辑就是先用元组打包,再将元组解包:

>>> _ = (3, 5)  #_ 表示匿名变量
>>> x, y = _
>>> x
3
>>> y
5
5. 元组的变与不变

元组本身不可变,但是如果元组指向的是可变的列表,则可以变化

>>> x = ([1,2], [3,4])
>>> x[1][0] = 0
>>> x
([1, 2], [0, 4])  #但是如果用x[1] = [0, 4]来替换,就是改变元组,这会报错

tuplelist一个最大的不同点就是tuple是不可变的,tuple里面的元素,也是不可替换的。但是这针对的是仅包含基础数据类型(数字类型、布尔类型、字符串类型)的数据,对于组合数据类型,则不受这个约束。

6. 转换为元组

元组数据类型可以把不是元组的容器转换为元组,比如将列表转换成元组

>>> L = ['wo', 32, '我']
>>> T = tuple(L)
>>> T
('wo', 32, '我')

反之:

>>> T = ('wo', 32, '我')
>>> L = list(T)
>>> L
['wo', 32, '我']
7. count()

count()方法用来统计tuple中某个元素出现的次数

T = (1, 1, 2, 2, 3, 3, 1, 3, 5, 7, 9)
print(T.count(1)) # ==> 3
print(T.count(5)) # ==> 1

对于不存在的元素,count方法不会报错,而是返回0,这是合理的,因为元组里面有0个不存在的元素。

8. index()

index()方法可以返回指定元素的下标,当一个元素多次重复出现时,则返回第一次出现的下标位置

T = (1, 1, 2, 2, 3, 3, 1, 3, 5, 7, 9)
T.index(9) # ==> 10
T.index(5) # ==> 8
T.index(1) # ==> 0 # 多次出现,返回第一次出现的位置

注意,index()方法和count()方法不一样,当指定的元素不存在时,使用index()方法Python会报错。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/348770.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号