集合型別及操作
集合元素之間無序,集合元素不可更改,
創建
set("pypy123")
{'1', '3', 'p', 'y', '2'} 空集合不能用{}生成,留個字典了, 用set()
關系操作
交 & 并 | 差 - 補^ 支持(&=, |=, -=, ^=)
關系運算子 <,<=,>,>= 判斷子集關系或包含關系
>>> A = {'p','y',123}
>>> B = set("pypy123")
>>> A-B
{123}
>>> B-A
{'1', '3', '2'}
>>> A&B
{'y', 'p'}
>>> A|B
{'1', '3', 'p', 'y', '2', 123}
>>> A^B
{'1', '3', '2', 123}
>>>
方法:
S.add(x)
S.discard(x) #不報錯
S.remove(x) #沒有會報錯
S.clear()
S.pop() #隨機 pop一個,沒有產生例外
S.copy()
Len(S)
x in S / x not in S
集合應用場景:
關系判斷
資料去重:集合型別所有資料無重復
>>> listA = [1,3,2,4,2,1,1,2] >>> setTemp = set(listA) >>> listA = list(setTemp) >>> listA [1, 2, 3, 4]
序列型別及操作
序列是一維元素的向量,
序列型別是基型別別 (元組,串列,字串)由序列型別衍生
處理函式:
x in S / x not in S
S + t
S *n或n*S
S[i]
s[i:j]或s[i:j:k] #切片
通用函式:
len(s)
min(s) #需要可比
max(s) #需要可比
方法:
s.index(x)或 s.index(x,i,j) #從i到j第一次出現的位置
s.count(x) #x出現總次數
元組型別
元組是序列型別的一種擴展,
不可變型別
定義
()或 tuple()
單個元組 (1,) 要加逗號,區分與基本型別
可以使用小括號或者不適用小括號
example:
def func():
return 1,2
1,2就是一個元組
操作:
繼承序列的操作
無特殊操作
串列型別
可變型別
定義
[]或list()
串列中各元素型別可以不同,無長度限制
ex:
>>> ls = ['pig','fish',999] >>> ls ['pig', 'fish', 999] >>> lt = ls >>> lt ['pig', 'fish', 999]
方括號[]和list真正創建一個串列,賦值操作僅傳遞參考()淺拷貝
操作:
ls[i] = x
ls[i:j:k] = lt #用lt替換ls切片后所對應元素子串列
del ls[i]
del ls[i:j:k]
ls += lt
ls *= n #使元素重復n遍
方法:
ls.append(x) #后面增加一個元素
ls.clear()
ls.copy() #創建一個新的,深拷貝
ls.insert(i, x) #在ls第i個元素前增加元素x
ls.pop(i) #取出并洗掉第i位置元素
ls.remove(x) #將ls中出現的第一個元素x洗掉
ls.reverse() #反轉
extend()和append()的區別:
append(x)只向串列增加一個元素,如果x為串列,則串列x作為一個元素,不會拆分
extend(seq)引數seq 是元素序列,會將元素拆分依次加到后面
>>> ls = list(range(1,5)) >>> ls [1, 2, 3, 4] >>> ls.append(1) >>> ls [1, 2, 3, 4, 1] >>> ls.append(1,2,3) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: append() takes exactly one argument (3 given) >>> ls.append([1,2,3]) >>> ls [1, 2, 3, 4, 1, [1, 2, 3]] >>> ls.append((1,2,3)) >>> ls [1, 2, 3, 4, 1, [1, 2, 3], (1, 2, 3)] >>> ls.append({a:1,b:2}) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'a' is not defined >>> ls.append({'a':1,'b':2}) >>> ls [1, 2, 3, 4, 1, [1, 2, 3], (1, 2, 3), {'a': 1, 'b': 2}] >>> ls.extend(range(5,8)) >>> ls [1, 2, 3, 4, 1, [1, 2, 3], (1, 2, 3), {'a': 1, 'b': 2}, 5, 6, 7] >>> ls.extend((1,2,3)) >>> ls [1, 2, 3, 4, 1, [1, 2, 3], (1, 2, 3), {'a': 1, 'b': 2}, 5, 6, 7, 1, 2, 3] >>> ls.extend({'c':3,'d':4}) >>> ls [1, 2, 3, 4, 1, [1, 2, 3], (1, 2, 3), {'a': 1, 'b': 2}, 5, 6, 7, 1, 2, 3, 'c', 'd']
序列應用場景
資料表示
元組用于元素不改變的場景,多用于固定搭配,資料保護 (const)
字典型別
鍵值對 索引->資料
字典是鍵值對的集合,鍵值對之間無序
定義
{}或dict() 鍵值間用:分割
操作和方法:
del d[k]
k in d
d.keys() #回傳所有鍵 回傳型別可以便利,但不能當串列操作
d.values() #回傳所有值
d.items() #回傳所有鍵值對資訊
d.get(k,<default>) #鍵k存在,回傳對應值,不存在回傳<default>值
d.pop(k,<default>) #鍵k存在,取出對應值,不存在回傳<default>值
d.popitem() #隨機取出一個鍵值對,以元組的形式反回
d.clear()
len(d)
應用場景
表達鍵值對資料,進而操作
元素遍歷
for k in d:
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/164066.html
標籤:Python
下一篇:第 4 章 程式計數器
