集合set
集合是多個(gè)元素的無(wú)序組合.
- 集合用大括號(hào){}表示,元素間利用逗號(hào)分隔
- 建立集合類型用{}或set()
- 建立空集合類型,必須使用set()
集合操作符
操作符及應(yīng)用 | 描述 |
---|---|
S|T | 返回一個(gè)新集合,包括st中的所有元素 |
S-T | 返回一個(gè)新集合,包括在集合s中但不在t中的元素 |
S&T | 返回一個(gè)新集合包括同時(shí)在s和t中的元素 |
S^T | 返回一個(gè)新集合,包括S和T中的非相同元素 |
S<=T或S<T | 返回True/False,判斷S和T的子集關(guān)系 |
S>=T或S>T | 返回True/False,判斷S和T的包含關(guān)系 |
集合處理方法
操作函數(shù)或方法 | 描述 |
---|---|
S.add | 向集合中添加元素 |
S.discard | 移除集合中的一個(gè)元素(如果元素不存在,不報(bào)錯(cuò)) |
S.remove | 移除集合中的一個(gè)元素(如果元素不存在交煞,會(huì)引發(fā) KeyError) |
S.clear | 移除集合中所有元素 |
S.pop | 隨機(jī)返回集合S的一個(gè)元素,更新S(如果集合為空喊巍,會(huì)引發(fā) KeyError) |
S.copy | 返回集合S的一個(gè)副本 |
len(S) | 返回集合S的元素個(gè)數(shù) |
x in S | 判斷集合S中是否有元素x,是返回True否則返回False |
x not in S | 判斷集合S中是否有元素x,是返回False否則返回True |
set(x) | 將其他類型變量x轉(zhuǎn)變?yōu)榧项愋?/td> |
數(shù)據(jù)去重,典型用法,利用數(shù)組內(nèi)元素不可重復(fù).
序列sequence
- 序列可以包含一個(gè)或多個(gè)元素,也可以沒(méi)有任何元素.
- 我們之前所說(shuō)的基本數(shù)據(jù)類型,都可以作為序列的元素.技矮。
- 序列有兩種:tuple(元組) 和 list (表)
序列操作符
操作符及應(yīng)用 | 描述 |
---|---|
x in S | 如果x是序列S的元素,返回True否則返回False |
x not in S | 如果x是序列S的元素,返回False否則返回True |
s + t | 連接兩個(gè)序列s和t |
SN或NS | 講序列s復(fù)制n次 |
S[i] | 索引,返回序列中的第i個(gè)元素 |
S[i:j]或S[i;j;k] | 切片,返回s序列中第i到j(luò)步長(zhǎng)為k的元素子序列 |
序列處理方法
函數(shù)和方法 | 描述 |
---|---|
len(S) | 返回序列S的長(zhǎng)度 |
min(s) | 返回序列s的最小元素,s中元素需要可比較 |
max(s) | 返回序列s的最大元素,s中元素需要可比較 |
s.index(x)或s.index(x,i,j) | 返回序列s從i到j(luò)中第一次出現(xiàn)元素x的位置 |
s.count(x) | 返回序列中x出現(xiàn)的總次數(shù) |
元組是序列類型的一種擴(kuò)展.
使用小括號(hào)()或tuple()創(chuàng)建,元素間用逗號(hào)分隔.
可以使用或不使用小括號(hào).
tuple元素不可變办陷,list元素可變.
字符串是一種tuple.
數(shù)據(jù)保護(hù)將數(shù)據(jù)轉(zhuǎn)換為元組類型.
字符串是一種特殊的元組琅轧,因此可以執(zhí)行元組的相關(guān)操作析孽。
str = 'abcdef'
print(str[2:4])
- 列表是一種序列類型,被創(chuàng)建后可以隨意修改
- 使用方括號(hào)[]或list()創(chuàng)建,元素間用逗號(hào)分隔
- 可以使用或不使用小括號(hào)
函數(shù)或方法 | 描述 |
---|---|
ls[i]=x | 替換列表ls第i個(gè)元素為x |
ls[i:j:k]=lt | 用列表lt替換ls切片后所對(duì)應(yīng)元素子列表 |
del ls[i] | 刪除列表ls中第i元素 |
del ls[i:j:k] | 刪除列表ls中從第i到第j步長(zhǎng)為k的元素 |
ls+=lt | 更新列表ls,將列表lt元素增加到列表ls中 |
ls*=n | 更新列表ls,將元素重復(fù)n次 |
列表類型操作類型和方法
函數(shù)或方法 | 描述 |
---|---|
ls.append(x) | 在列表最后添加元素x |
ls.clear() | 移除列表中所有元素 |
ls.copy() | 生成一個(gè)新列表,賦值ls中所有元素 |
is.insert(i,x) | 在列表ls第i位增加元素x |
ls.pop(i) | 將列表ls中第i位置元素取出并刪除 |
ls.remove(x) | 將列表ls中出現(xiàn)的第一個(gè)x元素刪除 |
ls.reverse() | 將列表ls中元素反轉(zhuǎn) |
字典
映射映射是一種鍵(索引)和值(數(shù)據(jù))的對(duì)應(yīng).
- 字典類型是映射的體現(xiàn).
- 鍵值對(duì):鍵是數(shù)據(jù)索引的擴(kuò)展.
- 字典是鍵值對(duì)的集合,鍵值對(duì)之間無(wú)序.
- 字典的每個(gè)鍵值(key=>value)對(duì)用冒號(hào)(:)分割,每個(gè)對(duì)之間用(,)分割,整個(gè)字典包括在花括號(hào){}中.
<字典變量> = {<鍵1>:<值1>,<鍵2>:<值2>...<鍵n>:<值n>}
鍵必須是唯一的搭伤,但值不必.
>>>d = {"中國(guó)":"北京","美國(guó)":"華盛頓","法國(guó)":"巴黎"}
>>>d
{'中國(guó)':'北京','美國(guó)':'華盛頓','法國(guó)':'巴黎'}
>>>d["中國(guó)"]
'北京'
>>>de = {} ; type(de)
<class 'dict'>
函數(shù)或方法 | 描述 |
---|---|
del d[k] | 刪除字典d中鍵k對(duì)應(yīng)的數(shù)據(jù)值 |
k in d | 判斷鍵k是否在字典d中,如果在返回True,否則False |
d.keys() | 返回字典中所有的鍵信息 |
d.values() | 返回字典中所有的值信息 |
d.items() | 返回字典中所有的鍵值對(duì)信息 |
列表類型操作函數(shù)和方法
函數(shù)或方法 | 描述 |
---|---|
d.get<k.default> | 鍵k存在,則返回相應(yīng)值,不在則返回<default>值 |
d.pop<k.default> | 鍵k存在,則取出相應(yīng)值,不在則返回<default>值 |
d.popitem() | 隨機(jī)從字典中取出一個(gè)鍵值對(duì),以元組形式返回 |
d.clear() | 刪除所有的鍵值對(duì) |
len(d) | 返回字典d中元素的個(gè)數(shù) |
對(duì)于List:
classmates = ['Michael', 'Bob', 'Tracy']
classmates.append('Adam') //添加在末尾,沒(méi)有add()方法
classmates.insert(1, 'Jack') //在指定位置添加
classmates.pop(1) //在知道位置刪除袜瞬,參數(shù)是索引
del classmate[1] //刪除第二個(gè)元素
classmates.remove('Bob') //參數(shù)是元素怜俐,刪除第一個(gè)與Bob值匹配的元素,之后又相同元素不會(huì)刪除
對(duì)于dict:
d = {'a': 'A', 'b': 'B'}
del d['a']
d.pop('a') //參數(shù)是key邓尤,沒(méi)有remove()方法
d['c']='C'; //插入直接賦值即可
對(duì)于set:
s={1,2,3} //set對(duì)象的創(chuàng)建也可以是s=set(iterable)
s.add(8) //添加8到末尾 沒(méi)有append()方法
s.remove(8) //參數(shù)是元素拍鲤,不是索引 刪除8
s.pop() //刪除最后一個(gè)元素
對(duì)于tuple:
由于tuple一旦初始化就不能修改,所以不能插入和刪除.