Python資料型別(3)序列的通用操作

2021-08-31 11:33:57 字數 2505 閱讀 7331

序列物件中的元素都是有序存放的,可以通過編號訪問其元素。列表,元組,字串都是序列物件。由於序列的操作具有一定的共性,因此這裡介紹列表,元組,字串的通用操作。

索引是訪問序列物件的主要方式,即通過位置編號引用序列中元素。索引一般為整數,放在方括號中。

這裡定義了乙個字串  str='abcdef'

字串元素與位置編號的關係:

正位置編號       0     1     2     3     4     5

列表元素           a     b     c     d     e      f

負位置編號       -6    -5   -4    -3    -2    -1

索引操作示例:

>>> str='abcdef'              #定義字串

>>> str[1] #索引訪問從左至右第二個

'b'>>> str[-1] #索引訪問從右往左第乙個

'f'>>> str[10] #超出索引範圍,報錯

traceback (most recent call last):

file "", line 1, in indexerror: string index out of range

分片是從序列中切出部分元素的操作。

格式1:list[a:b],返回索引a~b-1之間的元素,預設步長為一。

格式2:list[a:b:c],返回索引a~b-1(或+1 當c為負數時)之間間隔為c的元素。c可為正可為負,c為負時表示逆序分片。

>>> mylist=[1,2,3,4,5,6]

>>> mylist

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

>>> mylist[0:3] #返回索引0~2(2即3-1)的元素

[1, 2, 3]

>>> mylist[1:3] #返回索引1~2(2即3-1)的元素

[2, 3]

>>> mylist[0:5:2] #返回索引0 2 4(0,0+2,0+2+2)的元素

[1, 3, 5]

>>> mylist[5:0:-1] #返回索引5~1(1即0+1)的元素

[6, 5, 4, 3, 2]

>>> mylist[:] #省缺開始結束位置時

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

>>> mylist[::-1] #可以用分片完成逆序

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

序列加是連線兩個序列的操作,將兩個序列連成乙個序列。只有同型別的序列才能相加。

>>> str1='abcd'

>>> str2='efgh'

>>> str1+str2 #序列相加

'abcdefgh'

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

>>> mulist+str1 #不同型別序列相加,報錯

traceback (most recent call last):

file "", line 1, in nameerror: name 'mulist' is not defined

序列乘也用於擴充序列,序列乘n得到乙個重複n次的序列

>>> str1='abc'

>>> str1

'abc'

>>> 5*str1

'abcabcabcabcabc'

>>> str1*5

'abcabcabcabcabc'

>>> [str1]*3 #[str1]將str1變成列表,然後列表乘3

['abc', 'abc', 'abc']

成員資格用於檢查乙個元素是否屬於乙個序列,通常用in運算子檢測成員資格。

>>> 'b' in 'beixifen'  #字串檢驗成員資格

true

>>> 1 in (1,2,3) #元組檢驗成員資格

true

>>> 2 in [4,5,6] #列表檢驗成員資格

false

>>> min([1,2,3,9,8,7])              #求最小

1>>> max([1,23,9,5,6]) #求最大

23

>>> len('beixifen') #求長度

8>>> max(['a','b','c']) #按ascii碼

'c'>>> for i,v in enumerate('abc'): #enumerate函式返回序列的編號和元素

... print(i,v)

...0 a

1 b2 c

python資料型別 序列

注 本文件主要是學習 python核心程式設計 第二版 時做的資料整理。序列的成員是有序排列的,並且可以通過下標偏移量訪問到它的乙個或者幾個成員,包括字串 普通字串和unicode字串 列表和元組型別。下標偏移量從0開始到總元素 1結束。成員關係操作符 用來判斷乙個元素是否屬於乙個序列。in not...

python3 序列切片

格式 切片使用兩個冒號分隔的3個數字來完成。第乙個數字表示切片開始位置 預設為0 第二個數字表示切片截止 但不包含 位置 預設為列表長度 第三個數字表示切片的步長 預設為1 當步長省略是可省略最後乙個冒號。1.切片操作不會因為下標越界而丟擲異常,而是簡單地在列表尾部截斷或者返回乙個空列表。alist...

Python3 序列解包

自 序列解包是 python 3.0 之後才有的語法 什麼是序列解包呢?先看乙個例子 a,b,c 1,2,3 a 1 b 2 c 3 這種方法並不限於列表和元組,而是適用於任意序列型別 甚至包括字串和位元組序列 只要賦值運算子左邊的變數數目與序列中的元素數目相等,你都可以用這種方法將元素序列解包到另...