十三、Python元祖

(一)元祖理解

1、基本定义

元祖用于在某个变量中存储多个项目。tuple是Python中用于存储数据集合的4种内置数据类型之一,其它三种是list、set和dictionary。元祖是一个集合,是有序和不可改变的,使用圆括号书写。
1)基本形式如下:

mytuple=("aaa","bbb","ccc")
print(mytuple)

2)元祖是有序、不可更改的,并且允许重复值。元祖项可以被索引,索引号从0开始。

mytuple=("aaa","aaa","ccc")
print(mytuple)
mytuple=("aaa","bbb","ccc")
print(mytuple[1])

python 整合元祖 python元祖用来做什么_python

2、元祖长度

使用len()函数

mytuple=("aaa","aaa","ccc")
# print(mytuple)
print(len(mytuple))

python 整合元祖 python元祖用来做什么_删除项目_02


只有一项元祖时也要有逗号!!!否则就会被认为是字符串

mytuple=("aaa",)
print(mytuple)
print(len(mytuple))
print(type(mytuple))

python 整合元祖 python元祖用来做什么_删除项目_03

3、数据类型

1)元祖项是任何数据类型:字符串、整型和布尔数据类型

tuple1=(1,2,3,4)
tuple2=("hhh","kkk","lll")
tuple3=(True,False)
print(tuple1,tuple2,tuple3)

python 整合元祖 python元祖用来做什么_数据类型_04


2)可以包括不同数据类型

tuple1=(1,2,3,4,"hhh","kkk","lll",True,False)
print(tuple1)

python 整合元祖 python元祖用来做什么_python 整合元祖_05


3)使用tuple()创建元祖

a=tuple(("aaa","bbb","ccc"))
print(a)

python 整合元祖 python元祖用来做什么_python 整合元祖_06

(二)访问元祖

1、正常访问——使用索引号访问

a=tuple(("aaa","bbb","ccc"))
print(a[2])

python 整合元祖 python元祖用来做什么_删除项目_07

2、负索引

索引号最大值是-1,从最右边开始倒着数

a=tuple(("aaa","bbb","ccc"))
print(a[-1])

python 整合元祖 python元祖用来做什么_python 整合元祖_08

3、范围索引

通过指定索引号的开始位置和结束位置确定索引范围。指定范围时返回值是将具有指定项的新元祖。
注意:索引范围是左闭右开的区间。

a=tuple(("aaa","bbb","ccc"))
print(a[0:2])

负索引的范围

a=tuple(("aaa","bbb","ccc"))
print(a[-3:-2])

省略结束索引

a=tuple(("aaa","bbb","ccc"))
print(a[-2:])

省略开始索引,从第一项开始打印到列表末尾

a=tuple(("aaa","bbb","ccc"))
print(a[:-1])

检查项目值是否存在

a=tuple(("aaa","bbb","ccc"))
# print(a[-2:])
if "aaa"in a:
    print("哈哈哈哈")

python 整合元祖 python元祖用来做什么_字符串_09

(三)更新元祖

说明:元祖的特性是有序不可更改的,即元祖创建之后是不能更改、添加或者删除项目。但是真的要修改内容的话也有解决方法:把元祖转换为列表,然后修改列表,再把列表转换为元祖。

1、替换

a=tuple(("aaa","bbb","ccc"))
print(a)
y=list(a)
y[1]="啊啊啊"
print(y)
a=tuple(y)
print(a)

python 整合元祖 python元祖用来做什么_python 整合元祖_10

2、添加项目值

1)转换为列表

a=tuple(("aaa","bbb","ccc"))
print(a)
y=list(a)
y.append("ggg")
print(y)
a=tuple(y)

python 整合元祖 python元祖用来做什么_数据类型_11


2)把元祖添加到元祖中,使用+号

tuple1=(1,2,3,4)
tuple2=("hhh","kkk","lll")
tuple3=(True,False)

print(tuple1,tuple2,tuple3)
tuple3=tuple2+tuple1
print(tuple3)

python 整合元祖 python元祖用来做什么_python 整合元祖_12

3、删除项目

把元祖转换为列表进行删除
1)部分删除

a=tuple(("aaa","bbb","ccc"))
print(a)
y=list(a)
y.append("ggg")

print(y)
y.remove("ccc")
a=tuple(y)
print(a)

python 整合元祖 python元祖用来做什么_字符串_13


2)完全删除

a=tuple(("aaa","bbb","ccc"))
del a
print(a)

python 整合元祖 python元祖用来做什么_python_14

(四)解包元祖

当我们创建元祖时就为其分配了值,这称为“打包”元祖
1)包装元祖(创建元祖)

a=tuple(("aaa","bbb","ccc"))
print(a)

python 整合元祖 python元祖用来做什么_数据类型_15


2)解包

a=tuple(("aaa","bbb","ccc"))
(aaa,bbb,ccc)=a
print(aaa)
print(bbb)
print(ccc)

python 整合元祖 python元祖用来做什么_字符串_16


3)使用号匹配列表变量
如果变量的数量少于值的数量,可以在变量名中添加一个**号,值将作为列表分配给变量,其余值分配给带
的变量的列表。

添加到最后一个变量,分配完前面的变量后剩下的都给最后一个变量

a=tuple(("aaa","bbb","ccc","ddd","www"))
(aaa,bbb,*ccc)=a
print(aaa)
print(bbb)
print(ccc)

python 整合元祖 python元祖用来做什么_python 整合元祖_17

星号不是分配给最后一个变量而是分配给其他变量时,先按照顺序分配给带星号变量前的值,然后预留了带星号之后的变量的值,其余的都给带星号变量。

a=tuple(("aaa","bbb","ccc","ddd","www"))
(aaa,*bbb,ccc)=a
print(aaa)
print(bbb)
print(ccc)

python 整合元祖 python元祖用来做什么_删除项目_18

五、循环元祖

1、遍历元祖

1)使用for直接遍历

a=tuple(("aaa","bbb","ccc","ddd","www"))
for i in a:
    print(i)

python 整合元祖 python元祖用来做什么_python_19

2)遍历索引号
使用range()和len()函数创建合适的可迭代对象

a=("aaa","bbb","ccc","ddd","www")
for i in range(len(a)):
    print(a[i])

python 整合元祖 python元祖用来做什么_字符串_20


错误原因:


python 整合元祖 python元祖用来做什么_python 整合元祖_21

2、使用while循环

a=("aaa","bbb","ccc","ddd","www")
i=0
while i<len(a):
    print(a[i])
    i=i+1

python 整合元祖 python元祖用来做什么_python 整合元祖_22

(六)合并元祖

1)使用+号

a=("aaa","bbb","ccc","ddd","www")
b=(1,2,3)
c=a+b
print(c)

python 整合元祖 python元祖用来做什么_python_23


2)使用*号给元祖的内容乘以给定次数

b=(1,2,3)
c=b*2
print(c)

python 整合元祖 python元祖用来做什么_python 整合元祖_24


3)count函数用于返回指定次数值,如查找5出现的次数

b=(1,2,2,5,5,5,55,6,3)
x=b.count(5)
print(x)

python 整合元祖 python元祖用来做什么_删除项目_25


4)index()找出指定值并返回它的位置,如:查找元祖55的位置

b=(1,2,2,5,5,5,55,6,3)
x=b.index(55)
print(x)

python 整合元祖 python元祖用来做什么_数据类型_26

(七)练习

python 整合元祖 python元祖用来做什么_python_27


答案:

1、

fruits = ("apple", "banana", "cherry")
print(fruits[0])

2、

fruits = ("apple", "banana", "cherry")
print(fruits)

3、

fruits = ("apple", "banana", "cherry")
print(fruits[-1])

4、

fruits = ("apple", "banana", "cherry", "orange", "kiwi", "melon", "mango")
print(fruits[2:5])