【Python基本语法03】数据结构之元组

前言

上一讲分享了数据结构中的列表 list,本讲将走进元组 tuple。采用 Q & A 的形式讲解几点思考并采用脑图的形式进行总结。

Q1:什么是 tuple

tuple 是存储数据的容器之一,可以存储 int, float, string 以及 tuple(即嵌套);用圆括号标识,元素之间用逗号隔开。tuple 是不可变序列 seq,即指向的元素不可以二次赋值。

# 示例
>>> tup = (10,10.0,'hello',(1,2))                                                                                       
>>> print(tup,type(tup))                                                                                                  
(10, 10.0, 'hello', (1, 2)) <class 'tuple'> 

Q2:为什么说 tuple 不可变

每次重新赋值实质上已经更换了内存地址,不再是上一个 tuple。

# 示例
>>> tup = (10,10.0,'hello',(1,2))                                                                                       
>>> id(tup) 
2274711670120
>>> tup = (1,2)                                                                                                         
>>> id(tup)                                                                                                             
2274711756936 

Q3:如何访问 tuple 中的元素

这就需要索引 (index)、切片 (slice) 以及步长 (stride)。

  • index 是 seq 的通用操作,本质上就是编号,从0开始计数,-1表示末位,便于计算机快速访问到指定元素
# 示例
>>> tup = (10,10.0,'hello',(1,2))                                                                                       
>>> print(tup[0])                                                                                                       
10                                                                                                                      
>>> print(tup[-1])                                                                                                      
(1, 2) 
  • slice 代表一个范围,由 index 组成,之间用 :隔开,注意左闭右开,便于计算机快速访问某个范围的所有元素
# 示例                                                                                                   >>> tup = (10,10.0,'hello',(1,2))                                                                                       
>>> print(tup[1:2])                                                                                                     
(10.0,)                                                                                                                 
>>> print(tup[:2])                                                                                                      
(10, 10.0)                                                                                                              
>>> print(tup[1:])                                                                                                      
(10.0, 'hello', (1, 2))                                                                                                 
>>> print(tup[0:-1])                                                                                                    
(10, 10.0, 'hello')                                                                                                     
>>> print(tup[:])                                                                                                       
(10, 10.0, 'hello', (1, 2)) 
  • stride 便于计算机间隔访问 list 的某些元素
#示例
>>> tup = (10,10.0,'hello',(1,2))                                                                                       
>>> print(tup[0:2:2])                                                                                                   
(10,)                                                                                                                   
>>> print(tup[::2])                                                                                                     
(10, 'hello') 

Q4:如何变更 tuple

虽然 tuple 指向的元素不可以二次赋值,但是 tuple 本身还是可以做一些微调操作,比如重复,连接,删除,转型。下表列举了常用的内置函数。

函数 描述
len(tup) 返回 tup 长度
max(tup) 返回 tup 最大值
min(tup) 返回 tup 最小值
tuple(seq) 把 seq 转换为 tuple

下表是常用的 tuple 运算符。

函数 描述
tup1 + tup2 连接 tup1 与 tup2
tup * 2 重复2次
a in tup 判别 a 是否在 tup 中

总结

在这里插入图片描述

发布了34 篇原创文章 · 获赞 19 · 访问量 2228

猜你喜欢

转载自blog.csdn.net/chiyukunpeng/article/details/105202054