来源引用网络知识与某站曹老师视频相互结合学习记录,仅供参考!
Python 基础知识
四、容器
容器是一种可以存储多个元素的数据类型;
Python 中的容器有:字符串 str、列表 list、元组 tuple、集合 set、字典 dict;
统计“长度或数量”一般使用 len() 函数,每个容器都有。
3、 元组
元组是多个元素的集合,但是不能修改;使用 小括号 ();
Python 的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号( ),列表使用方括号[ ]。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
元组的定义
赋值定义
元组变量名称=(元素 1,元素 2,元素 3,元素 4,......)
空元组定义
元组变量名称=()
元组变量名称=tuple()
注意点:
- 若只有一个元素,后面需要添加一个逗号,否则会被当做字符串定义处理;
- 元组里面的元素没有限制;
- 元组里面可以嵌套元组;
# 元组赋值定义 t1 = ('apple', 'banana', 'cherry') print(f't1={t1},t1的类型是:{type(t1)}') # 若定义的元组里面只有一个元素,需要添加一个逗号,否则会被当做字符串定义处理; t2 = ('apple') t3 = ('apple',) print(f't2={t2},t2的类型是:{type(t2)}') print(f't3={t3},t3的类型是:{type(t3)}') # 空元组定义 t4 = () print(f'空元组定义,t4={t4},t4的类型是:{type(t4)}') # 面向对象方式--使用tuple()对象方式定义空元组 t5 = tuple() print(f'面向对象方式定义空元组,t5={t5},t5的类型是:{type(t5)}') # 元组里面的元素类型没有限制,元组里面可以嵌套元组 t6 = (1, 'apple', 3.1415926, True, [5, 6], (7, 8), {9, 10}) print(f'元组里面的元素类型没有限制,t6={t6}') 运行结果 t1=('apple', 'banana', 'cherry'),t1的类型是:<class 'tuple'> t2=apple,t2的类型是:<class 'str'> t3=('apple',),t3的类型是:<class 'tuple'> 空元组定义,t4=(),t4的类型是:<class 'tuple'> 面向对象方式定义空元组,t5=(),t5的类型是:<class 'tuple'> 元组里面的元素类型没有限制,t6=(1, 'apple', 3.1415926, True, [5, 6], (7, 8), {9, 10})元组的下标索引
元组的下标索引的用法几乎和列表一致,唯一的区别就是不能修改元素;
可以通过元组的下标索引获取元组中的元素;
下标索引从 0 开始,第一个元素下标索引是 0,第二个元素下标索引是 1,......第 N 个元素下标索引是 N-1;
或者通过反向索引也可以获取元组元素;索引从-1 开始,倒数第二个元素下标索引是-2,......倒数第 N 个元素的下标索引是 -N;
元组 tuple | 1 | 2 | 3 | 4 | 5 | 6 | ...... | N-1 | N |
正索引 | 0 | 1 | 2 | 3 | 4 | 5 | ...... | N-2 | N-1 |
负索引 | -N | -(N-1) | -(N-2) | -(N-3) | -(N-4) | -(N-5) | ...... | -2 | -1 |
-N+1 | -N+2 | -N+3 | -N+4 | -N+5 | ...... |
注意点:元组的下标同样不能越界,否则就会越界错误;
元组的常用方法
因为元组不能修改,所以常用方法比较少;
1、index(元素)方法,查找元组中指定元素的下标,不存在就报错;
t1 = ('apple', 'banana', 'cherry') print(f'元组t1中的apple元素的下标是:', t1.index('apple')) 运行结果 元组t1中的apple元素的下标是: 02、count(元素)统计某元素在元组中的个数;
t1 = ('apple', 'banana', 'cherry', 'apple', 'banana') # count(元素)统计某元素在元组中的个数 # count = t1.count('apple') # print(f't1元组中元素apple的个数={count}') print('t1元组中元素apple的个数是:', t1.count('apple')) 运行结果 t1元组中元素apple的个数是: 23、len(元组),统计元组内一共有多少元素;
t1 = ('apple', 'banana', 'cherry', 'apple', 'banana') # len(元组),统计元组内一共有多少元素 # length = len(t1) # print(f'统计t1元组中的元素个数:{length}') print(f'统计t1元组中的元素个数:', len(t1)) 运行结果 统计t1元组中的元素个数: 5元组内置函数
Python元组包含了以下内置函数:
方法及描述 | 实例 |
len(tuple) | |
max(tuple) | |
min(tuple) | |
tuple(iterable) | 将可迭代系列转换为元组。 |
元组的遍历
若需要获取元组内的所有元素,可以通过 while 循环或者 for 循环遍历元组来获取;
while 循环遍历 元组:
# 元组赋值定义 t1 = ('apple', 'banana', 'cherry') # 定义变量i=0 i = 0 # while循环遍历元组 # while循环 条件i while i < len(t1): # 通过下标取值元素,并赋值给ele ele =t1[i] # 每次循环进行打印 print(ele) # 防止while陷入死循环 i += 1 运行结果 apple banana cherryfor 循环遍历 元组:
# 元组赋值定义 t1 = ('apple', 'banana', 'cherry') # for循环遍历元组 # 每次遍历t1元组时把获取到的每个变量放在 临时变量i 里面 for i in t1: print(i) 运行结果 apple banana cherry其他
定义一个三维元组 t1 = (((1, 2), (3, 4,), (5, 6)), ((7, 8), (9, 10), (11, 12))) 通过元组遍历,打印出每个值;(提示:使用循环嵌套实现)
# 定义一个三维元组 t1 = (((1, 2), (3, 4,), (5, 6)), ((7, 8), (9, 10), (11, 12))) # 通过元组遍历,打印出每个值;使用循环嵌套实现 for i in t1: # print(f't1三维元组里面最外层有两个二维元组是:{i}') for j in i: # print(f'二维元组中的元组是:{j}') for k in j: print(f'三维元组的每个元素值是:{k}')容器序列切片
序列是指内容连续且有序的一类数据容器;例如:之前所介绍的 字符串 str、列表 list、元组 tuple均是属于序列容器,并且全都支持下标索引。
切片是指从一个序列中,取出一个子序列;切片对 字符串、列表、元组 都是支持的,而且语法全都是一样的;
语法:序列 [ 起始下标:结束下标:步长 ],返回一个新的序列;
注意点:
- 步长默认是 1;若步长是 1 可省略不写;
- 结束下标是不包括的;
- 起始下标:结束下标 都不写的话默认获取全部;
对字符串进行切片
索引值以0为开始值,-1为从末尾的开始位置。
# 赋值定义字符串 str1 = '0123456789' # 对字符串进行切片--反向获取 print(str1[::-1]) print(str1[::-2]) print(str1[6:3:-1]) print(str1[6:3:-2]) 运行结果 9876543210 97531 654 64对列表进行切片
与字符串的索引一样,列表索引从0开始,第二个索引是1,依此类推。
通过索引列表可以进行截取、组合等操作。
# 赋值定义列表 list1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 对列表进行切片 print(list1) print(list1[1:4:1]) # 步长默认是1,可省略不写 print(list1[1:4:]) 运行结果 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3] [1, 2, 3]对元组进行切片
元组与字符串、列表类似,下标索引从 0 开始,可以进行截取,组合等。
# 赋值定义元组 tuple1 = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) # 对元组进行切片 # 起始下标:结束下标 不写的话默认获取全部 print(tuple1[:]) # 步长2 print(tuple1[::2]) 运行结果 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) (0, 2, 4, 6, 8)未完待续......