python-序列、集合及字典
組合資料型別
1.集合型別
集合是多種元素的無序組合,(元素獨一性)
集合用大括號{}表示,元素用,分隔。
用set函式建立:
A=set(“python123”)
{“p”,”y”,”t”,”h”,”o”,”n”,”1”,”2”,”3”}
集合操作符
集合有四種基礎運算方法,並,交,差,補
S|T 並運算,返回一個新集合,包含在集合S和T中的所有元素
S&T 交運算,返回一個新集合,包含既在S中又在T中的集合
S-T 差運算,返回一個新的集合,包含在集合S中但是不在集合T中的元素
S^T 補運算,返回一個新集合,包含集合S和T中的不相同元素
集合有兩種關係運算操作
S<=T或者S<T 關係運算,返回True/False,判斷S和T的子集關係
S>=T或者S>T 關係運算,返回True/False,判斷S和T的包含關係
集合由四種增強運算操作
S|=T 更新集合S,包含集合S和T中的所有元素
S&=T 更新集合S,包含同時在集合S和T中的元素
S-=T 更新集合S,包含在集合S中,但是不在T中的元素
S^=T 更新集合S,包含集合S和T中的不相同元素
集合的操作方法
操作方法 |
描述 |
S.add(x) |
把元素x加到集合S中,就算S中已經有了x也不會報錯 |
S.discard(x) |
移除集合S中的元素x,就算S中沒有x也不會報錯 |
S.remove(x) |
移除集合S中的元素x,如果S中沒有x,則會報錯KeyError |
S.clear() |
清除集合S中的所有元素 |
S.pop() |
從集合中隨意返回S的一個值,並更新S,若S為空,則產生KeyError錯誤 |
S.copy() |
返回集合S的一個副本 |
len(S) |
返回集合S中的元素的數目 |
x in S |
判斷元素x是否包含在集合S中 |
x not in S |
判斷元素x是否不在集合S中 |
set(x) |
將其他型別的變數x轉換為集合型別 |
2.序列型別
具有先後順序的一組資料,序列中元素可以相同,型別可以不同
序列型別是一個基類型別,字串,元組,和列表都屬於序列型別
序號的定義有兩種,正向遞增序號和反向遞減序號
序列的操作方法
方法 |
描述 |
len(S) |
返回序列S的長度,即元素的個數 |
max(S) |
返回序列S中的最大值,如果S中的元素型別不同,不可以比較,則會報錯 |
min(S) |
返回序列S中的最小值,如果S中的元素型別不同,不可以比較,則會報錯 |
S.index(x) |
返回序列S中第一次出現x元素的索引 |
S.index(x,i,j) |
返回序列S從i開始到j位置中第一次出現x元素在序列S中的索引 |
S.count(x) |
返回元素x在序列S中出現的總次數 |
3.列表型別
列表是包含0個或多個物件引用的有序序列,屬於序列型別。
可以用list函式及那個元組或者字串轉換成列表:
list(“python”)
[“p”,”y”,”t”,”h”,”o”,”n”]
列表的操作
方法 |
描述 |
ls[i]=x |
把列表索引為i的元素替換為x |
ls[i:j:k]=lt |
把列表lt替換為ls切片之後的子列表 |
del ls[i] |
刪除ls的第i個元素 |
del ls[i:j:k] |
刪除列表中用切片方法選中的元素 |
ls +=lt |
更新列表ls,把lt列表增加到ls列表後 |
ls *=n |
更新列表ls,其元素重複n次 |
ls.append(x) |
列表ls新增元素x |
ls.clear() |
刪除列表ls的所有元素 |
ls.copy() |
生成一個新的列表,賦予ls中的所有元素 |
ls.insert(i,x) |
在列表ls中的第i個位置插入元素x |
ls.pop(i) |
將列表ls中的第i個元素取出並且刪除該元素 |
ls.remove(x) |
將列表ls中出現的第一個x元素刪除 |
ls.reverse(x) |
將列表中的元素進行逆向排序 |
4.元組型別
元組一旦被建立就不能被修改
元組用()建立或者用tuple()建立,元素之間用逗號分開
可以使用或者不使用小括號,比如函式返回多個值
元組繼承了序列型別所有的操作
5.字典型別及其操作
對映是一種鍵(索引)和值(資料)的對應關係
鍵值對:鍵是資料索引的擴充套件
字典是鍵值對的集合,鍵值之間無序
字典的定義採用大括號{}和dict()建立,鍵值對用冒號表示,鍵值對之間用逗號隔開
>>>country={'中國':'北京','美國':'華盛頓','法國':'巴黎'}
>>>country
{'中國':'北京','美國':'華盛頓','法國':'巴黎'}
>>>coutry['中國']
'北京'
基本格式:
{<鍵1>:<值1>,<鍵2>:<值2>……<鍵n>:<值n>}
字典型別操作方法
方法 |
描述 |
del d[k] |
刪除字典d中鍵 |
k in d |
判斷鍵k是否在字典d中,如果在則返回True,否則返回False |
k not in d |
判斷鍵k是否在字典d中,如果不在則返回True,否則返回False |
d.keys() |
能夠返回字典d中所有的鍵資訊 |
d.values() |
返回字典d中所有的值資訊 |
d.items() |
返回字典d中所有鍵值對的資訊 |
d.get(k,) |
鍵k存在,則返回鍵k對應的value值,否則返回default |
d.pop(k,) |
鍵k存在,則取出鍵k對應的value值,否則返回default |
d.popitem() |
隨機彈出一個鍵值對 |
d.clear() |
清空字典d |
d.len() |
返回字典d中鍵值對的個數 |