Python入门学习系列(七)之元组常用功能及函数

Python入门学习系列(七)之元组常用功能及函数,第1张

        本节我们来学习一下Python中新增的(在C/CPP中未见过的)数据类型元组。

        元组和列表非常相似,唯一特别的点在于元组内部的元素不可修改,这说明不能像列表一样通过索引进行修改,有点像CPP里面类的最最最私有的数据成员(只能读不能改)。

        还有一点是列表采用中括号[]进行定义,而元组采用小括号()。

关键1:元组定义

        元组采用小括号()进行定义,小括号内可以空着来创建一个新元组,如下:

tup1 = ('Google', 'Runoob', 1997, 2000)
tup2 = (1, 2, 3, 4, 5 )
tup3 = "a", "b", "c", "d"   #  不需要括号也可以
print(tup1)
print(type(tup3))
#创建空元组
tup0=()

关键2:元组索引

        元组的索引则是和列表一样,同样是通过中括号[]进行索引,如下:

#使用下标索引访问元组
tup1 = ('Google', 'Runoob', 1997, 2000)
tup2 = (1, 2, 3, 4, 5, 6, 7 )
print ("tup1[0]: ", tup1[0])
print ("tup2[1:5]: ", tup2[1:5])

#元组索引和截取,与列表基本一致
tup = ('Google', 'Runoob', 'Taobao', 'Wiki', 'Weibo','Weixin')
print(tup[1])
print(tup[-2])
print(tup[1:])
print(tup[1:4])
print(tup[1:-1])
print(tup[-3:-2])
print(tup[:-2])

关键3:元组连接组合

        虽然元组不可以进行修改,但可以进行连接组合,利用+号即可,如下:

#元组不可修改,但可以进行连接组合
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
# 以下修改元组元素 *** 作是非法的。
# tup1[0] = 100
# 创建一个新的元组
tup3 = tup1 + tup2
print (tup3)

关键4:元组运算符(+号和*号)

        在输出的时候可以利用+号连接输出和*号重复输出,也可以利用in或者not in,如下:

#元组运算符与列表基本一致   +号和*号
# len((1, 2, 3))	3	计算元素个数
print(len((1,2,3)))
# (1, 2, 3) + (4, 5, 6)	(1, 2, 3, 4, 5, 6)	连接
print((1,2,3)+(4,5,6))
# ('Hi!',) * 4	('Hi!', 'Hi!', 'Hi!', 'Hi!')	复制
print(("Hi!")*4)
# 3 in (1, 2, 3)	True	元素是否存在
print(3 in (1,2,3))
# for x in (1, 2, 3): print (x, end=" ")	1 2 3	迭代
for x in (1,2,3):print(x,end="")

关键5:元组内置函数

        如下注释说明:

#元组内置函数
# 1	len(tuple)
# 计算元组元素个数。	
tuple1 = ('Google', 'Runoob', 'Taobao')
print(len(tuple1))

# 2	max(tuple)
# 返回元组中元素最大值。	
tuple2 = ('5', '4', '8')
print(max(tuple2))

# 3	min(tuple)
# 返回元组中元素最小值。	
tuple2 = ('5', '4', '8')
print(min(tuple2))

# 4	tuple(iterable)
# 将可迭代系列转换为元组。	
list1= ['Google', 'Taobao', 'Runoob', 'Baidu']
tuple1=tuple(list1)
print(tuple1)

注意:关于元组是不可变的

        谓元组的不可变指的是元组所指向的内存中的内容不可变。但如果改变内存空间则是被允许的,如下代码所示:

#关于元组是不可变的
#所谓元组的不可变指的是元组所指向的内存中的内容不可变
#这样是不允许的
tup=(1,2,3);tup[1]=4#改变了元组tup中第二个位置指向的内存的内容
#但这样是允许的,因为改变了内存
t=(1,2,3);print(id(t))
t=(4,5,6);print(id(t))

———————————————————————————————————————————

        基于菜鸟教程:Python3 元组 | 菜鸟教程 的代码如下,可直接运行查看运行结果:

#Python元组
#元组与列表类似 但其元素不能修改
#非常像C语言中的私有成员数组
#列表使用[],而元组使用()

tup1 = ('Google', 'Runoob', 1997, 2000)
tup2 = (1, 2, 3, 4, 5 )
tup3 = "a", "b", "c", "d"   #  不需要括号也可以
print(tup1)
print(type(tup3))
#创建空元组
tup0=()

#元组中只包含一个元素时,需要在元素后面添加逗号 , ,否则括号会被当作运算符使用
tup1=(50)
print(type(tup1))#视作整型
tup1=(50,)
print(type(tup1))

#使用下标索引访问元组
tup1 = ('Google', 'Runoob', 1997, 2000)
tup2 = (1, 2, 3, 4, 5, 6, 7 )
print ("tup1[0]: ", tup1[0])
print ("tup2[1:5]: ", tup2[1:5])

#元组不可修改,但可以进行连接组合
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
# 以下修改元组元素 *** 作是非法的。
# tup1[0] = 100
# 创建一个新的元组
tup3 = tup1 + tup2
print (tup3)

#元组运算符与列表基本一致   +号和*号
# len((1, 2, 3))	3	计算元素个数
print(len((1,2,3)))
# (1, 2, 3) + (4, 5, 6)	(1, 2, 3, 4, 5, 6)	连接
print((1,2,3)+(4,5,6))
# ('Hi!',) * 4	('Hi!', 'Hi!', 'Hi!', 'Hi!')	复制
print(("Hi!")*4)
# 3 in (1, 2, 3)	True	元素是否存在
print(3 in (1,2,3))
# for x in (1, 2, 3): print (x, end=" ")	1 2 3	迭代
for x in (1,2,3):print(x,end="")

#元组索引和截取,与列表基本一致
tup = ('Google', 'Runoob', 'Taobao', 'Wiki', 'Weibo','Weixin')
print(tup[1])
print(tup[-2])
print(tup[1:])
print(tup[1:4])
print(tup[1:-1])
print(tup[-3:-2])
print(tup[:-2])

#元组内置函数
# 1	len(tuple)
# 计算元组元素个数。	
tuple1 = ('Google', 'Runoob', 'Taobao')
print(len(tuple1))

# 2	max(tuple)
# 返回元组中元素最大值。	
tuple2 = ('5', '4', '8')
print(max(tuple2))

# 3	min(tuple)
# 返回元组中元素最小值。	
tuple2 = ('5', '4', '8')
print(min(tuple2))

# 4	tuple(iterable)
# 将可迭代系列转换为元组。	
list1= ['Google', 'Taobao', 'Runoob', 'Baidu']
tuple1=tuple(list1)
print(tuple1)

#关于元组是不可变的
#所谓元组的不可变指的是元组所指向的内存中的内容不可变
#这样是不允许的
tup=(1,2,3);tup[1]=4#改变了元组tup中第二个位置指向的内存的内容
#但这样是允许的,因为改变了内存
t=(1,2,3);print(id(t))
t=(4,5,6);print(id(t))

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/798484.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-06
下一篇 2022-05-06

发表评论

登录后才能评论

评论列表(0条)

保存