溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

序列之元組詳解

發(fā)布時(shí)間:2020-07-18 20:05:16 來源:網(wǎng)絡(luò) 閱讀:1603 作者:奇貓 欄目:編程語言

元組是序列一種,與列表類似,但是不能修改,下面我們?cè)斀饨榻B下元組:

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可以將可迭代對(duì)象轉(zhuǎn)成元組,相關(guān)操作如下:

#range對(duì)象轉(zhuǎn)元組
print(tuple(range(10)))
#字符串轉(zhuǎn)列表
print(tuple('helloworld'))
#列表轉(zhuǎn)元組
print(tuple(['C++', 'Java', 'Python']))

1.3 元組不可修改:

嘗試修改元組:

#小ming成績(jī)單
xiaoming = (59, 80)
#嘗試修改下:
xiaoming[0] = 60

輸出結(jié)果:

TypeError                                 Traceback (most recent call last)
<ipython-input-1-1ba0d7da8615> in <module>
      2 xiaoming = (59, 80)
      3 #嘗試修改下:
----> 4 xiaoming[0] = 60

TypeError: 'tuple' object does not support item assignment

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

2.元組常規(guī)操作:

2.1 切片操作:

tv = ('小米', '創(chuàng)維', '海信','康佳','長(zhǎng)虹')
print('tv=',tv)
#切片操作
print('tv[:2]=', tv[:2])
#掐頭去尾
print('tv[0:-1]=', tv[0:-1])
#反序
print('tv[::-1]=', tv[::-1])
#隔一個(gè)取一個(gè)
print('tv[::2]=', tv[::2])

輸出結(jié)果如下:
tv= ('小米', '創(chuàng)維', '海信', '康佳', '長(zhǎng)虹')
tv[:2]= ('小米', '創(chuàng)維')
tv[0:-1]= ('小米', '創(chuàng)維', '海信', '康佳')
tv[::-1]= ('長(zhǎng)虹', '康佳', '海信', '創(chuàng)維', '小米')
tv[::2]= ('小米', '海信', '長(zhǎng)虹')

2.2 元組遍歷:

tvs = ('小米', '創(chuàng)維', '海信','康佳','長(zhǎng)虹')
for tv in tvs:
    print(tv)

輸出結(jié)果:

小米
創(chuàng)維
海信
康佳
長(zhǎng)虹

2.3 元組常用函數(shù):

#定義元組
t = (90, 30, 40, 80, 100)
#長(zhǎng)度:
print('len t:', len(t))
#最大值:
print('max value:', max(t))
#最小值:
print('min value:', min(t))
#平均值:
print('ave value:', sum(t)/len(t))

2.4 元組相關(guān)方法:

元組是不可變數(shù)據(jù)結(jié)構(gòu),只有兩個(gè)方法,我們來看下:

方法 說明
T.count(value) 統(tǒng)計(jì)元素在元組中數(shù)量
T.index(value, [start, [stop]]) 返回元素第一次出現(xiàn)索引,不存在報(bào)異常

相關(guān)使用如下:

t = (90, 30, 40, 80, 100)
#90出現(xiàn)次數(shù)
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)))

運(yùn)行結(jié)果:

t.count(90)=1
t.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

注意最后一場(chǎng)。

3.元組使用場(chǎng)景:

3.1 函數(shù)返回多個(gè)值:

定義一個(gè)函數(shù),參數(shù)為兩個(gè)數(shù)字,返回兩個(gè)數(shù)字和,積;
分析:邏輯上實(shí)現(xiàn)不困難,如何返回兩個(gè)值?
我們定義一個(gè)函數(shù),返回一個(gè)固定值:

#定義函數(shù)
def func():
    return 0
print('func()=', func())

輸出結(jié)果:func()= 0
如何返回兩個(gè)值,在后面價(jià)格書試試,代碼實(shí)現(xiàn)如下:

#定義函數(shù)
def func():
    return 0,1
print('func()=', func())

輸出結(jié)果:func()= (0, 1)
可以看到,返回值為一個(gè)元組,然后我們來實(shí)現(xiàn)返回和與積的函數(shù),代碼實(shí)現(xiàn):

#定義函數(shù)
def func(a, b):
    return a+b, a*b
print('func({}, {})={}'.format(2,5, func(2, 5)))

輸出結(jié)果:func(2, 5)=(7, 10)

如何接受這兩個(gè)值:還記得大明湖畔的多元賦值么?

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

輸出結(jié)果:

(2, 3)
2 3

希望大家記得這些方法使用。

3.2 函數(shù)傳多個(gè)不定數(shù)量參數(shù),例如sum函數(shù)?

sum函數(shù),可以傳入多個(gè)數(shù)字,這個(gè)實(shí)現(xiàn)其實(shí)也和元組有關(guān),
我么來演示個(gè)例子:

#*args:可變長(zhǎng)非關(guān)鍵字
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))

我們?cè)谶@時(shí)只是展示他的用法,后面講函數(shù)時(shí)候我們?cè)谠斀饨忉專?/p>

到這里元組基本使用就介紹完了,希望對(duì)大家理解有所幫。
另外歡迎大家關(guān)注老貓的專欄:
https://blog.51cto.com/cloumn/detail/34。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI