序列之元组详解
元组是序列一种,与列表类似,但是不能修改,下面我们详解介绍下元组:
1 列表近亲:元组1.1 元组定义与访问方式:元组与列表类似,元组语法:(ele1, ele2, ele3);具体如下:
#定义元组1,与列表类似a = (1,2,3)print(a)#定义元组2b = '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)<ipython-input-1-1ba0d7da8615> in <module> 2 xiaoming = (59, 80) 3 #尝试修改下:----> 4 xiaoming[0] = 60TypeError: '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]= ('小米', '海信', '长虹')
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 = (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)=1t.index(90)=0---------------------------------------------------------------------------ValueError Traceback (most recent call last)<ipython-input-19-cc15ec2f620f> in <module> 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 0print('func()=', func())
输出结果:func()= 0
如何返回两个值,在后面价格书试试,代码实现如下:
#定义函数def func(): return 0,1print('func()=', func())
输出结果:func()= (0, 1)
可以看到,返回值为一个元组,然后我们来实现返回和与积的函数,代码实现:
#定义函数def func(a, b): return a+b, a*bprint('func({}, {})={}'.format(2,5, func(2, 5)))
输出结果:func(2, 5)=(7, 10)
如何接受这两个值:还记得大明湖畔的多元赋值么?
m = 2,3#m什么类型?print(m)#x,y是什么值?x,y = mprint(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。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。