溫馨提示×

溫馨提示×

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

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

python序列數(shù)據(jù)類型之序列數(shù)據(jù)的基本操作

發(fā)布時間:2020-08-07 23:11:52 來源:ITPUB博客 閱讀:288 作者:ckxllf 欄目:編程語言

  1. 序列的長度、最大值、最小值、求和

  通過內(nèi)置函數(shù)len()、max() .minO可以獲取序列的長度、序列中元索的最大值、序列中元素的最小值。通過內(nèi)置函數(shù)sum()可以獲取列表或元組中的各元素之和:如果有非數(shù)值元索,則導(dǎo)致TyeEror對于字符串(str)和字節(jié)數(shù)據(jù)(bytes).也將導(dǎo)致TypeError.

  序列數(shù)據(jù)的求和示例。

  t1=(1,2,3,4)

  sum(t1)

  2. 序列的索引訪問操作

  序列表示可以通過索引下標(biāo)訪問的可迭代對象。用戶可以通過整數(shù)下標(biāo)訪問序列s的元素。

  s[i]

  訪問序列s在索引i處的元素

  索引下標(biāo)從0開始,第1個元素為s[0],第2個元素為s[1],依此類推,最后一個元素為s[Ien(s)-1].

  如果索引下標(biāo)越界,則導(dǎo)致IndexError; 如果索引下標(biāo)不是整數(shù),則導(dǎo)致TypeError.

  例如:

  s= 'abc'

  s[0] #輸出:'a'

  s[3] # IndexError: string index out of range

  s['a'] # Typerror: string indices must be integers

  3. 序列的切片操作

  通過切片(slice)操作可以截取序列s的部分。 切片操作的基本形式如下 。

  s[i:j]

  或者

  s[i:j:k]

  其中,i為序列開始下標(biāo)(包含s[i]); j為序列結(jié)束下標(biāo)(不包含s[j]); k為步長。如果省略則從下標(biāo)0開始:如果省略j,則直到序列結(jié)束為止;如果省略k,則步長為1。

  注意: 下標(biāo)也可以為負(fù)數(shù)。如果截取范圍內(nèi)沒有數(shù)據(jù),則返回空元組;如果超過下標(biāo)范圍,則不報錯。

  4. 序列的連接和重復(fù)操作

  通過連接操作符+可以連接兩個序列(s1和s2),形成一個新的序列對象;通過重復(fù)操作符??梢灾貜?fù)一個序列n次(n 為正整數(shù))。序列連接和重復(fù)操作的基本形式如下。

  s1+s2 或者 s×n 或者 n×s

  連接操作符+和重復(fù)操作符×。也支持復(fù)合賦值運(yùn)算,即+=和×=,

  序列的連接和重復(fù)操作示例。

  s1 ='abc'

  s2 ='def'

  s1+s2 #輸出:“abcdef”

  s1 * 3 #輸出:“abcabcabc”

  s1 += s2 #輸出:“abcdef”

  s2 *= 2 #輸出:“defdef”

  5. 序列的成員關(guān)系操作

  用戶可以通過下列方式之一判斷元素 x是否存在于序列s中:

  方式  判斷

  xins  如果為True,則表示存在

  xnotins  如果為True,則表示不存在

  s.count(x)  返回x在s(指定范圍[start, end))中出現(xiàn)的次數(shù)

  s. index( x [ , i [ , j ] ])  返回x在s(指定范圍[1,j))中第一次出現(xiàn)的下標(biāo)

  其中指定范圍 [ i, j ) 表示從下標(biāo) i (包括,默認(rèn)為 0 )開始到下標(biāo)j結(jié)束(不包括 , 默認(rèn)為 len(s)).

  對于s. index( value, [start, [stop ] ] ) 方法,如果找不到,則導(dǎo)致ValueError.例如:

  'Tobeor not tobe, this is a question'. index('123')

  ValueError: substr ing not found

  序列中元 素存在性的判斷示例。

  s= 'Good , better , best! '

  'o' in s # True

  'g' not in s #True

  s. count('e') # 3

  s. index('e', 10) # 10

  6. 序列的比較運(yùn)算操作

  兩個序列支持比較運(yùn)算符(<.<=.==、!=、>=、>),字符串比較運(yùn)算按順序逐個元索進(jìn)行比較。

  序列的比較運(yùn)算示例。

  >>> s1 = 'abc'

  >>> s2= 'abe'

  >>> s3= 'abcd'

  >>> s4= 'cba'

  >>> s1 > s4

  False

  >>> s2<= s3

  True

  >>>s1 == s2

  True

  >>>s1 != s3

  True

  >>>'a ' > 'A'

  True

  >>> 'a' >= ' '

  True

  7. 序列的排序操作

  通過內(nèi)置函數(shù)sorted()可以返回序列的排序列表。通過類reversed構(gòu)造函數(shù)可以返回序列的反序迭代器。內(nèi)置函數(shù)sorted()的形式如下。

  sorted(iterable, key= None, reverse= False)

  #返回序列的排序列表

  其中,key是用于計算比較鍵值的函數(shù)(帶一個參數(shù)),例如key= str. lower.如果reverse= True,則反向排序。

  序列的排序操作示例。

  >>> s1 = 'axd'

  >>>sorted(s1)

  ['a', 'd', 'x']

  >>> s2=(1,4,2)

  >>> sorted(s2)

  [1,2,4]

  >>>sorted(s2,reverse = true)

  [4,2,1]

  8. 內(nèi)置函數(shù)all()和any()

  python any()和all()用法

  any(x)判斷x對象是否為空對象,如果都為空、0、false,則返回false,如果不都為空、0、false,則返回true

  all(x)如果all(x)參數(shù)x對象的所有元素不為0、’’、False或者x為空對象,則返回True,否則返回False

  >>> any('123')

  True

  >>> any([0,1])

  True

  >>> any([0,'0',''])

  True

  >>> any([0,''])

  False

  >>> any([0,'','false'])

  True

  >>> any([0,'',bool('false')])

  True

  >>> any([0,'',False])

  False

  >>> any(('a','b','c'))

  True

  >>> any(('a','b',''))

  True

  >>> any((0,False,''))

  False

  >>> any([])

  False

  >>> any(())

  False

  >>> all(['a', 'b', 'c', 'd']) #列表list,

  True

  >>> all(['a', 'b', 'c', 'd']) #列表list,元素都不為空或0

  True

  >>> all(['a', 'b', '', 'd']) #列表list,存在一個為空的元素

  False

  >>> all([0, 1,2, 3]) #列表list,存在一個為0的元素

  False

  >>> all(('a', 'b', 'c', 'd')) #元組tuple,元素都不為空或0

  True

  >>> all(('a', 'b', '', 'd')) #元組tuple,存在一個為空的元素

  False

  >>> all((0, 1,2, 3)) #元組tuple,存在一個為0的元素

  False

  >>> all([]) # 空列表

  True

  >>> all(()) # 空元組

  True

  >>> #注意:空元組、空列表返回值為True,這里要特別注意

  >>> all(('', '', '', '')) #元組tuple,全部為空的元素

  False

  >>> all('')

  True 無錫人流手術(shù)多少錢 http://www.chnk120.com/

  >>> #如果all(x)參數(shù)x對象的所有元素不為0、''、False或者x為空對象,則返回True,否則返回False

  >>>

  9. 序列的拆分

  變量個數(shù)和序列長度相等

  使用賦值語句可以將序列值拆分、然后賦值給多個變量.形式如下,

  變量1,變量.,變量n .序列或可迭代對象

  若變量個數(shù)和序列的元素個數(shù)不一致,將導(dǎo)致ValueError.例如:

  >>>a,b= (1, 2)

  >>> a, b

  (1, 2)

  >>>a, b,c. (1, 2)

  valueError: not enough values to umpack (expected3, got.2)

  >>>data = (1001, '張三,(80,79, 92))

  >>> sid, name, scores = data

  >>> scores

  (80, 79, 92)

  >>> sid, name, (chinese, nath, english) = data

  >>> nath

  79

  變量個數(shù)和序列長度不等

  如果序列長度未知,可以使用 * 元組變量,將多個值作為元組賦值給元組變量。在一個賦值語句中, * 元組變量只允許出現(xiàn)一次,否則將導(dǎo)致SyntaxError.例如:

  >>> first, * middles, last = range(10)

  >>> middles

  [1, 2, 3, 4,5, 6, 7, 8]

  >>> first, second, third, * lasts = range(10)

  >>> lasts

  [3, 4, 5,6, 7,8, 9]

  >>> * firsts, last3, last2, last1 = range(10)

  >>> firsts

  [0, 1, 2, 3, 4,5, 6]

  >>> first, * middles, last = sorted([70, 85, 89, 88, 86, 95, 89]) #去掉最高分和最低分

  >>> sum(niddles) / len(middles) #計算去掉最高分和最低分后的平均值

  87.4

  使用臨時變量 _

  如果只需要部分?jǐn)?shù)據(jù)序列的其他位置可以使用臨時變量 _ 。例如:

  >>> _, b, _ =(1,2,3)

  >>>b

  2

  >>> record = ( 'Zhangsan', 'szhang@abc. com', 021 - 62232333', 13912349876')

  >>> name, _ , * phones = record

  >>> phones

  [ 021 - 62232333','13912349876']

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

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

AI