序列之元组详解
admin
2023-07-16 03:22:32
0

元组是序列一种,与列表类似,但是不能修改,下面我们详解介绍下元组:

1 列表近亲:元组

1.1 元组定义与访问方式:

元组与列表类似,元组语法:(ele1, ele2, ele3);具体如下:

#定义元组1,与列表类似
a = (1,2,3)
print(a)
#定义元组2
b = 'a', 'b', 'c'
print(b)
#元素访问:
print(a[0], b[1])

1.2 tuple方法使用:

tuple可以将可迭代对象转成元组,相关操作如下:

#range对象转元组
print(tuple(range(10)))
#字符串转列表
print(tuple('helloworld'))
#列表转元组
print(tuple(['C++', 'Java', 'Python']))

1.3 元组不可修改:

尝试修改元组:

#小ming成绩单
xiaoming = (59, 80)
#尝试修改下:
xiaoming[0] = 60

输出结果:

TypeError                                 Traceback (most recent call last)
 in 
      2 xiaoming = (59, 80)
      3 #尝试修改下:
----> 4 xiaoming[0] = 60

TypeError: 'tuple' object does not support item assignment

列表中的元素是不能修改的。

2.元组常规操作:

2.1 切片操作:

tv = ('小米', '创维', '海信','康佳','长虹')
print('tv=',tv)
#切片操作
print('tv[:2]=', tv[:2])
#掐头去尾
print('tv[0:-1]=', tv[0:-1])
#反序
print('tv[::-1]=', tv[::-1])
#隔一个取一个
print('tv[::2]=', tv[::2])

输出结果如下:
tv= ('小米', '创维', '海信', '康佳', '长虹')
tv[:2]= ('小米', '创维')
tv[0:-1]= ('小米', '创维', '海信', '康佳')
tv[::-1]= ('长虹', '康佳', '海信', '创维', '小米')
tv[::2]= ('小米', '海信', '长虹')

2.2 元组遍历:

tvs = ('小米', '创维', '海信','康佳','长虹')
for tv in tvs:
    print(tv)

输出结果:

小米
创维
海信
康佳
长虹

2.3 元组常用函数:

#定义元组
t = (90, 30, 40, 80, 100)
#长度:
print('len t:', len(t))
#最大值:
print('max value:', max(t))
#最小值:
print('min value:', min(t))
#平均值:
print('ave value:', sum(t)/len(t))

2.4 元组相关方法:

元组是不可变数据结构,只有两个方法,我们来看下:

方法 说明
T.count(value) 统计元素在元组中数量
T.index(value, [start, [stop]]) 返回元素第一次出现索引,不存在报异常

相关使用如下:

t = (90, 30, 40, 80, 100)
#90出现次数
print('{}.count({})={}'.format('t', 90, t.count(90)))
#90在元组中索引
print('{}.index({})={}'.format('t', 90, t.index(90)))
#0在元组中索引
print('{}.index({})={}'.format('t', 0, t.index(0)))

运行结果:

t.count(90)=1
t.index(90)=0
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
 in 
      5 print('{}.index({})={}'.format('t', 90, t.index(90)))
      6 #0在元组中索引
----> 7 print('{}.index({})={}'.format('t', 0, t.index(0)))

ValueError: tuple.index(x): x not in tuple

注意最后一场。

3.元组使用场景:

3.1 函数返回多个值:

定义一个函数,参数为两个数字,返回两个数字和,积;
分析:逻辑上实现不困难,如何返回两个值?
我们定义一个函数,返回一个固定值:

#定义函数
def func():
    return 0
print('func()=', func())

输出结果:func()= 0
如何返回两个值,在后面价格书试试,代码实现如下:

#定义函数
def func():
    return 0,1
print('func()=', func())

输出结果:func()= (0, 1)
可以看到,返回值为一个元组,然后我们来实现返回和与积的函数,代码实现:

#定义函数
def func(a, b):
    return a+b, a*b
print('func({}, {})={}'.format(2,5, func(2, 5)))

输出结果:func(2, 5)=(7, 10)

如何接受这两个值:还记得大明湖畔的多元赋值么?

m = 2,3
#m什么类型?
print(m)
#x,y是什么值?
x,y = m
print(x, y)

输出结果:

(2, 3)
2 3

希望大家记得这些方法使用。

3.2 函数传多个不定数量参数,例如sum函数?

sum函数,可以传入多个数字,这个实现其实也和元组有关,
我么来演示个例子:

#*args:可变长非关键字
def mysum(a,b, *args):
    #查看args类型
    print(args, type(args))
    return a+b+sum(args)
print(mysum(1,2))
print(mysum(1,2,3))
print(mysum(1,2,3, 4))

我们在这时只是展示他的用法,后面讲函数时候我们在详解解释;

到这里元组基本使用就介绍完了,希望对大家理解有所帮。
另外欢迎大家关注老猫的专栏:
https://blog.51cto.com/cloumn/detail/34。

相关内容

热门资讯

特朗普:正致力于与伊朗达成协议... 特朗普在《纽约邮报》一档播客访谈节目中称,他正与伊朗磋商一项协议,伊朗已同意不再谋求拥有核武器。他表...
不接壤的日菲为何偷划海界? 日菲近日发表联合声明,宣称就“划定两国专属经济区和大陆架的海洋边界”启动正式谈判。两个隔海相望的国家...
凤凰晚报丨从钳工到老戏骨,魏宗... 今日人物【从钳工到老戏骨,魏宗万用一生诠释“戏比天大”】6月1日,表演艺术家魏宗万在上海逝世,享年8...
科威特称伊朗袭击致63人受伤 科威特卫生部门3日称,伊朗当天对科威特的袭击已造成63人受伤,相关部门已启动紧急应对预案,并在全国范...
日本标榜“和平国家”却行扩军备... 今年是东京审判开庭80周年,世界正回望历史、反思战争罪责、捍卫二战后来之不易的国际秩序之际,日本却迈...
浙江杨梅即将大规模上市,如何破... “我们现在的压力很大。”5月底,浙江余姚杨梅产区丈亭镇副镇长林宇站在一片杨梅林前对第一财经表示,当地...
致5死2伤!韩国就韩华航空航天... 【环球网报道 记者 姜蔼玲】据韩联社6月1日报道,针对位于韩国大田的韩华航空航天公司发生爆炸致7人伤...
黄河科技学院2026年招生简章 长按图片识别二维码或点击 “阅读原文” 查看电子招生简章。
医路起航,从“心” 开始!黄河... 6月1日上午,黄河科技学院附属医院2022级临床医学本科实习生入院岗前培训在大医讲堂顺利举办。院领导...
问题居然在实体卡槽上!美版iP... 6月2日消息,日前,又有博主提前把还没发布的iPhone 18 Pro电池参数给曝光了出来,根据爆料...