序列物件中的元素都是有序存放的,可以通過編號訪問其元素。列表,元組,字串都是序列物件。由於序列的操作具有一定的共性,因此這裡介紹列表,元組,字串的通用操作。
索引是訪問序列物件的主要方式,即通過位置編號引用序列中元素。索引一般為整數,放在方括號中。
這裡定義了乙個字串 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 這種方法並不限於列表和元組,而是適用於任意序列型別 甚至包括字串和位元組序列 只要賦值運算子左邊的變數數目與序列中的元素數目相等,你都可以用這種方法將元素序列解包到另...