python序列資料型別之序列資料的基本操作
1. 序列的長度、最大值、最小值、求和
透過內建函式len()、max() .minO可以獲取序列的長度、序列中元索的最大值、序列中元素的最小值。透過內建函式sum()可以獲取列表或元組中的各元素之和:如果有非數值元索,則導致TyeEror對於字串(str)和位元組資料(bytes).也將導致TypeError.
序列資料的求和示例。
t1=(1,2,3,4)
sum(t1)
2. 序列的索引訪問操作
序列表示可以透過索引下標訪問的可迭代物件。使用者可以透過整數下標訪問序列s的元素。
s[i]
訪問序列s在索引i處的元素
索引下標從0開始,第1個元素為s[0],第2個元素為s[1],依此類推,最後一個元素為s[Ien(s)-1].
如果索引下標越界,則導致IndexError; 如果索引下標不是整數,則導致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為序列開始下標(包含s[i]); j為序列結束下標(不包含s[j]); k為步長。如果省略則從下標0開始:如果省略j,則直到序列結束為止;如果省略k,則步長為1。
注意: 下標也可以為負數。如果擷取範圍內沒有資料,則返回空元組;如果超過下標範圍,則不報錯。
4. 序列的連線和重複操作
透過連線運算子+可以連線兩個序列(s1和s2),形成一個新的序列物件;透過重複運算子。可以重複一個序列n次(n 為正整數)。序列連線和重複操作的基本形式如下。
s1+s2 或者 s×n 或者 n×s
連線運算子+和重複運算子×。也支援複合賦值運算,即+=和×=,
序列的連線和重複操作示例。
s1 ='abc'
s2 ='def'
s1+s2 #輸出:“abcdef”
s1 * 3 #輸出:“abcabcabc”
s1 += s2 #輸出:“abcdef”
s2 *= 2 #輸出:“defdef”
5. 序列的成員關係操作
使用者可以透過下列方式之一判斷元素 x是否存在於序列s中:
方式 判斷
xins 如果為True,則表示存在
xnotins 如果為True,則表示不存在
s.count(x) 返回x在s(指定範圍[start, end))中出現的次數
s. index( x [ , i [ , j ] ]) 返回x在s(指定範圍[1,j))中第一次出現的下標
其中指定範圍 [ i, j ) 表示從下標 i (包括,預設為 0 )開始到下標j結束(不包括 , 預設為 len(s)).
對於s. index( value, [start, [stop ] ] ) 方法,如果找不到,則導致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. 序列的比較運算操作
兩個序列支援比較運算子(<.<=.==、!=、>=、>),字串比較運算按順序逐個元索進行比較。
序列的比較運算示例。
>>> 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. 序列的排序操作
透過內建函式sorted()可以返回序列的排序列表。透過類reversed建構函式可以返回序列的反序迭代器。內建函式sorted()的形式如下。
sorted(iterable, key= None, reverse= False)
#返回序列的排序列表
其中,key是用於計算比較鍵值的函式(帶一個引數),例如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. 內建函式all()和any()
python any()和all()用法
any(x)判斷x物件是否為空物件,如果都為空、0、false,則返回false,如果不都為空、0、false,則返回true
all(x)如果all(x)引數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 無錫人流手術多少錢
>>> #如果all(x)引數x物件的所有元素不為0、''、False或者x為空物件,則返回True,否則返回False
>>>
9. 序列的拆分
變數個數和序列長度相等
使用賦值語句可以將序列值拆分、然後賦值給多個變數.形式如下,
變數1,變數.,變數n .序列或可迭代物件
若變數個數和序列的元素個數不一致,將導致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
變數個數和序列長度不等
如果序列長度未知,可以使用 * 元組變數,將多個值作為元組賦值給元組變數。在一個賦值語句中, * 元組變數只允許出現一次,否則將導致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
使用臨時變數 _
如果只需要部分資料序列的其他位置可以使用臨時變數 _ 。例如:
>>> _, b, _ =(1,2,3)
>>>b
2
>>> record = ( 'Zhangsan', 'szhang@abc. com', 021 - 62232333', 13912349876')
>>> name, _ , * phones = record
>>> phones
[ 021 - 62232333','13912349876']
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69945560/viewspace-2658935/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- json序列化與反序列化 (map,struct, slice, 基本資料型別)JSONStruct資料型別
- Python基本資料型別之整型Python資料型別
- Python基本資料型別之浮點型Python資料型別
- Python的基本資料型別Python資料型別
- Python基本資料型別之元組Python資料型別
- 1.1.4 python基本資料型別之字典Python資料型別
- 1.1.5 python基本資料型別之集合Python資料型別
- Redis資料型別基本操作Redis資料型別
- js資料型別之基本資料型別和引用資料型別JS資料型別
- python基本資料型別Python資料型別
- 1.1.3 python基本資料型別之元組Python資料型別
- (三)Python基本資料型別Python資料型別
- 基本資料型別之字串資料型別字串
- Redis 基本資料型別(Set) 的操作命令Redis資料型別
- Python之資料型別Python資料型別
- Python之資料序列化(json、pickle、shelve)PythonJSON
- python基本資料型別計算Python資料型別
- Python - 基本資料型別_str 字串Python資料型別字串
- python操作符及資料型別之整形Python資料型別
- Python基本資料型別:布林型別(Boolean)Python資料型別Boolean
- Python3學習(基本資料型別-集合-字典-基本資料型別總結)Python資料型別
- 手把手教你學Python之基本資料型別Python資料型別
- 基本資料型別資料型別
- 初學Python(2)基本資料型別Python資料型別
- Python基礎02 基本資料型別Python資料型別
- Python學習教程:基本資料型別Python資料型別
- Java中的基本資料型別與引用資料型別Java資料型別
- Go 基礎之基本資料型別Go資料型別
- Python中序列化/反序列化JSON格式的資料PythonJSON
- 1.1.1python基本資料型別之數字和字串Python資料型別字串
- Java的基本資料型別Java資料型別
- Apache Flink 進階(五):資料型別和序列化Apache資料型別
- JAVA中基本資料型別和引用資料型別Java資料型別
- python資料型別-列表建立和操作Python資料型別
- java基礎之java的基本資料型別Java資料型別
- Java基本資料型別Java資料型別
- JavaScript基本資料型別JavaScript資料型別
- 003基本資料型別資料型別