python資料型別 序列

2022-06-28 11:24:12 字數 3674 閱讀 4726

注:本文件主要是學習《python核心程式設計(第二版)》時做的資料整理。

序列的成員是有序排列的,並且可以通過下標偏移量訪問到它的乙個或者幾個成員,包括字串(普通字串和unicode字串)、列表和元組型別。下標偏移量從0開始到總元素-1結束。

成員關係操作符:用來判斷乙個元素是否屬於乙個序列。in/not in操作符返回值一般就是true/false,語法為: 物件 [not] in 序列

1 >>> list = [1, 2, 3]

2 >>> 1 in

list

3true

4 >>> 4 in

list

5 false

允許把乙個序列和另乙個相同型別的序列做連線sequence1 + sequence2,這種方法不是最高效的;

1 >>> str1 = '

hello

'2 >>> str2 = '

world

'3 >>> str1 +str24'

helloworld

'

對於字串,可將所有的子字串放在乙個列表或可迭代物件中,然後呼叫join方法來把所有的內容連線在一起以節約記憶體;對列表來說,可用列表的extend()方法來把兩個或者多個列表物件合併。

1 >>> str3 = ''

2 >>>str3.join([str1, str2])3'

helloworld

'

sequence * copies_int,copies_int必須是乙個整型,不能是長整型。該操作符返回乙個新的包含多份原物件拷貝的物件。

1 >>> s1 = 'ha'

2 >>> s1*33'

hahaha

'

訪問某乙個資料元素的語法:sequence[index]。範圍從0到偏移值最大值(比序列長度少一),用len()函式可以得到序列長度,實際的範圍是0<= index <= len(sequence)-1。使用負數索引,範圍是-1到序列的負長度-len(sequence),-len(sequence) <= index <= -1

1 >>> print ('

faye

', '

leanna

', '

daylen

')[1]

2 leanna

訪問多個元素:sequence[starting_index: ending_index],可得到從起始索引到結束索引之間的乙個"片"元素。

1

sequence[starting_index: ending_index, step]

2 >>> s = '

abcdefghijk

'3 >>> s[::-1]4'

kjihgfedcba

'5 >>> s[::2]6'

acegik

'7 >>>

8 >>> a = '

abcde

'9 >>> for i in [none] + range(-1, -len(a), -1):

10 ... print

a[:i]

11...

12abcde

13abcd

14abc

15ab

16 a

序列操作符作用seq[ind]

獲取下標為ind的元素

seq[ind1:ind2]

獲取下標從ind1到ind2間的元素集合

seq*expr

序列重複expr次

seq1 + seq2

連線序列seq1和seq2

obj in seq

判斷obj元素是否包含在seq中

obj not in seq

判斷obj元素是否不包含在seq中

內建函式list()、str()和tuple()被用作在各種型別之間轉換,這些函式都是工廠函式,將物件作為引數,並將其內容(淺拷貝)到生成的物件中。

一旦乙個物件被建立,就不能改變其身份或型別,把乙個列表物件傳給list()函式,會建立乙個這個物件的淺拷貝,然後將其插入新的列表中。所謂淺拷貝就是只拷貝這個物件的索引,而不是建立了乙個物件。

函式

含義

list(iter)

把可迭代物件轉換為列表

str(obj)

把obj物件轉換為字串(物件的字串表示法)

unicode(obj)

把物件轉換為unicode字串(使用預設編碼)

basestring()

抽象工廠函式,其作用僅僅是為str和unicode函式提供父類,所以不能被例項化,也不能被呼叫

tuple(item)

把乙個可迭代物件轉換為乙個元組物件

1 >>> obj = list(x for x in range(10))

2 >>>obj

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

4 >>>str(obj)5'

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

'6 >>>tuple(obj)

7 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

8 >>>unicode(obj)

9 u'

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

'

序列型別可用的內建函式如下:

函式名

功能

enumerate(iter)

接受乙個可迭代物件作為引數,返回乙個enumerate物件(同時也是乙個迭代器),該物件生成由iter每個元素的index值和item值組成的陣列

len(seq)

返回seq的長度

max(iter, key=none) or max(arg0, arg1,…, key=none)

返回iter或(arg0, arg1,…)中的最大值,如果指定了key,這個key必須是乙個可以傳給sort()方法的,用於比較的**函式

min(iter, key=none) or min(arg0, arg1,…, key=none)

返回iter或(arg0, arg1,…)中的最小值,如果指定了key,這個key必須是乙個可以傳給sort()方法的,用於比較的**函式

sorted(iter, func=none, key=none, reverse=false)

接受乙個可迭代物件,返回乙個有序的列表,可選引數func、key和reverse的含義跟list.sort()內建函式的引數含義一樣

sum(seq, init=0)

返回seq和可選引數init的總和,其效果等同於reduce(operator,add,seq,init)

zip(it0, it1, … , itn)

返回乙個列表,其第乙個元素是it0、it1…這些元素的第乙個元素組成的乙個元組,第二個。。。依此類推

後面詳細介紹字串、列表和元組時再詳細介紹這些函式。

python資料型別 列表(序列型別)

序列的取值方法 索引操作符 和 切邊操作符,字串和元組類似,定義完成後,資料的值不可改變,list 空列表 type list list csdn 23,字元搬運工 lst 0 csdn 取值 切片和索引 list 新增 刪除 del list list.remove list list.remov...

python 資料型別 序列型別 元組

列表 打了激素的陣列 元組 帶了緊箍咒的列表 不可變資料型別,沒有增刪改 可以儲存任意資料型別 t 1,1.2,true,westos print t,type t 定義乙個空元組 li print li,type li t2 tuple li print t2,type t2 定義乙個只有乙個元素...

python資料型別 序列 元組

元組是一種不可變型別,元組可用作乙個字典的key。atuple 123,abc inner tuple 7 9j 元組的切片操作和列表一樣,用方括號作為切片操作 裡面寫上索引值或者索引範圍 1 atuple 2 2 123,abc 元組是不可變型別,不能更新或改變元組的元素,可通過現有元組的元組片段...