1. 程式人生 > >第四章 python集合型別《一》

第四章 python集合型別《一》

第四章 集合型別

1、字串
1、下標索引
所謂下標,就是編號,就好比超市中的儲存櫃的編號,通過這個編號就能找到相應的儲存空間
字串實際上就是字元的陣列,所以也支援下標索引。
如果有字串:name = ‘abcdef’,在記憶體中的實際儲存如下:
在這裡插入圖片描述
如果想取出部分字元,那麼可以通過下標的方法,(注意python中下標從 0 開始)
name = ‘abcdef’
print(name[0])
print(name[1])
print(name[-2])

2、切片(分片)
切片是指對操作的物件擷取其中一部分的操作。字串、列表、元組都支援切片操作。
切片的語法:[起始:結束:步長]
步長:表示下標變化的規律。
注意:選取的區間屬於左閉右開型,即從"起始"位開始,到"結束"位的前一位結束(不包含結束位本身)。
我們以字串為例講解。
如果取出一部分,則可以在中括號[]中,使用:

name = 'abcdef'
print(name[0:3]) # 取 下標0~2 的字元
name = 'abcdef'
print(name[0:5]) # 取 下標為0~4 的字元
name = 'abcdef'
print(name[3:5]) # 取 下標為3、4 的字元
name = 'abcdef'
print(name[2:]) # 取 下標為2開始到最後的字元
name = 'abcdef'
print(name[1:-1]) # 取 下標為1開始 到 最後第2個  之間的字元m)

在這裡插入圖片描述

3、字串常見操作
如有字串mystr = ‘hello world and bjsxt yunshuxueyuan sxt beijing’,以下是常見的操作
<1>find == java Indexof方法
檢測 str 是否包含在 mystr中,如果是返回開始的索引值,否則返回-1
mystr.find(str, start=0, end=len(mystr))
<2>index
跟find()方法一樣,只不過如果str不在 mystr中會報一個異常.
mystr.index(str, start=0, end=len(mystr))
<3>count
返回 str在start和end之間 在 mystr裡面出現的次數
mystr.count(str, start=0, end=len(mystr))
<4>replace
把 mystr 中的 str1 替換成 str2,如果 count 指定,則替換不超過 count 次.
mystr.replace(str1, str2, mystr.count(str1))
<5>split
以 str 為分隔符切片 mystr,如果 maxsplit有指定值,則僅分隔 maxsplit 個子字串
mystr.split(str=" ", 2)
<6>capitalize
把字串的第一個字元大寫
mystr.capitalize()
<7>title
把字串的每個單詞首字母大寫
<8>startswith
檢查字串是否是以 obj 開頭, 是則返回 True,否則返回 False
mystr.startswith(obj)
<9>endswith
檢查字串是否以obj結束,如果是返回True,否則返回 False.
mystr.endswith(obj)
<10>lower
轉換 mystr 中所有大寫字元為小寫
mystr.lower()
<11>upper
轉換 mystr 中的小寫字母為大寫
mystr.upper()
<12>ljust
返回一個原字串左對齊,並使用空格填充至長度 width 的新字串
mystr.ljust(width)
<13>rjust
返回一個原字串右對齊,並使用空格填充至長度 width 的新字串
mystr.rjust(width)
<14>center
返回一個原字串居中,並使用空格填充至長度 width 的新字串
mystr.center(width)
<15>lstrip
刪除 mystr 左邊的空白字元
mystr.lstrip()
<16>rstrip
刪除 mystr 字串末尾的空白字元
mystr.rstrip()
<17>strip —java trim
刪除mystr字串兩端的空白字元
<18>rfind
類似於 find()函式,不過是從右邊開始查詢.
mystr.rfind(str, start=0,end=len(mystr) )
<19>rindex
類似於 index(),不過是從右邊開始.
mystr.rindex( str, start=0,end=len(mystr))
<20>partition
把mystr以str分割成三部分,str前,str和str後
mystr.partition(str)
<21>rpartition
類似於 partition()函式,不過是從右邊開始.
mystr.rpartition(str)
<22>splitlines
按照換行符分隔,返回一個包含各行作為元素的列表
mystr.splitlines()
<23>isalpha
如果 mystr 所有字元都是字母 則返回 True,否則返回 False
mystr.isalpha()
<24>isdigit
如果 mystr 只包含數字則返回 True 否則返回 False.
mystr.isdigit()
<25>isalnum
如果 mystr 所有字元都是字母或數字則返回 True,否則返回 False
mystr.isalnum()
<26>isspace
如果 mystr 中只包含空格,則返回 True,否則返回 False.
mystr.isspace()
<27>join
mystr 中每個字元後面插入list的每個元素後面,構造出一個新的字串
mystr.join(list)
總結:
查詢字串:
find:找不到返回-1 ,都是從左邊找,右邊查詢r
index:找不到報錯