您的位置:首頁>正文

python3.5|序列類型(list、tuple、str)支援的操作及簡單實例

python的標準類型如字串(str)、表(list)、元組(tuple)都是序列類型, 但又各有不同:

I 元素類型不同:表和元組可以以任何物件為元素, 而字串物件的元素只能是字元;

II 建立後是否可以修改:分為可變(mutable)與不變(immutable)兩種類型。 表list是可變類型, 字串str與元組tuple是不變類型;

python把list、tuple、str歸類為序列類型, 不僅因為它們的一些共用性質, 還因為它們都定義了一批公共操作。 下表的一組操作由所有序列類型所共用, 不論其可變與否。

sn運算式說明
s、t 表示序列;
x 表示物件;
n 表示自然數(從0開始的非整數);
i、j 表示整數下標;1x in ss有元素等於x則結果為True, 否則為False2s not in ss有元素等於x則結果為False,
否則為True3s + ts和t的拼接序列4s*n 或 n*ss的n個拷貝的拼接5s[i]s的第i個元素, 從0開始計6s[i:j]s的切片, 從下標i到j的一段做出的序列, 左閉右開的序列;7s[i:j:k]同上, 且按步長k取元素8len(s)s的長度9min(s)s的最小元素10max(s)s的最大元素11s.index(x[,i[,j]])x在s裡首次出現的下標, i、j表示起始、結束位置12s.count(x)x在s裡出現的次數

上表的補充說明:

1 s.index方法描述中的[]表示可選, 也就是說, 這個方法有三種可用形式:

1.1 s.index(x)返回x在s中第一次出現的下標;

1.2 s.index(x,i)中的i表示從i開始查找;

1.3 s.index(x,i,j)中的i,j表示查找的範圍;

2 操作符in和not in, 對於字串類型, 檢查x是否為s的子序列;而對於其他序列, 則是檢查是否是序列的元素;

3 下標i和j是負值時表示要求從後向前確定匹配的位置;

4 對於切片操作, 其中的i、j、k都可以省略, 但 冒號必須保留;i的缺省值是0, j的缺省值是序列的長度,

k的缺省值是1;

5 對表list的操作(拼接、拷貝拼接和切片)的結果是list, tuple操作的結果還是tuple;

上表的操作實例↓

(關於可變序列的操作請見後續文章:python3.5|可變(mutable)序列列表list支援的操作及簡單實例)

附源碼:

s = (1,1,2,3,5,8,13,21,34,55)

t = (89,144,233)

str = 'This is a test of python'

n = 3

x = 8

print(x in s)

print(x not in s)

s2 = s + t

print(s2)

print(t * n)

'''

True

False

(1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233)

(89, 144, 233, 89, 144, 233, 89, 144, 233)

'''

print(s[n])

s3 = s2[3:6]

print(s3)

s4 = s2[3::3]

print(s4)

'''

3

(3, 5, 8)

(3, 13, 55, 233)

'''

print(len(s2))

print(min(s2))

print(max(s2))

print(s2.count(1))

print(str.count('t'))

'''

13

1

233

2

3

'''

print(s2.index(55))

print(s2.index(1))

print(s2.index(1,1))

print(str.index('is',3))

'''

9

0

1

5

'''

# s5 = s.copy() # tuple沒有copy屬性

# s5 = str.copy() # str沒有copy屬性

-End-

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示