python中列表 元組 字典 集合的區別
列表 | 元組 | 集合 | 字典 | |
英文 | list | tuple | set | dict |
定義 | 定義[],資料之間使用,分割 | 定義(),資料之間用,分割 | 定義用 {} 或 set() | 字典的每個鍵值 key=>value 對用冒號 : 分割,每個鍵值對之間用逗號 , 分割 |
是否可讀寫 | 讀寫 | 只讀 | 讀寫 | 讀寫 |
可否重複 | 是 | 是 | 否 | 是 |
資料型別 | 任意型別物件 | 任意型別物件 | 任意型別物件 | 任意型別物件 |
儲存方式 | 值 | 值 | 鍵(不能重複) | 鍵值對(鍵不能重複) |
是否有序 | 有序 | 有序 | 無序 | 無序,自動正序 |
初始化 | [1,'a'] | (1,'a') | {1,2} | {'a':1,'b':'kk'} |
空值的定義 | [] 或者 list() | ()或 tuple() | set() | {}或者dict() |
支援的操作 | 索引,切片,合同,刪除,修改 | 索引 | S | T 並 S - T 差 S & T 交 S ^ T 補 S <= T 或 S < T S >= T 或 S > T S |= T 並 S &= T 交 S ^= T 補 |
增、刪、改、查
|
讀取 | 通過偏移讀取 | 通過偏移讀取 | S.pop()隨機返回S的一個元素,更新S,若S為空產生KeyError異常 | 通過鍵而不是偏移量來讀取 查 get(),setdefault(),has_key() 通過dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value
|
新增 | append(object)函式 向列表中追加據, 會把新增的資料放在列表中的最後一個位置 insert(index,object)函式 向列表中插入一條資料 extend(iterable)函式 可以將另外一個列表中的資料新增到該表中 iterable:可迭代物件 列表、字串、字典、元組 |
不能修改 | S.add(x) 如果x不在集合S中,將x增加到S | d['sex'] = 'man' |
修改 | 列表[索引]=資料 classname[1]='new' index(object:資料, start:開始搜尋的位置,stop:結束搜尋的位置) |
不能修改 | 集合元素不可更改 | d['Age'] = 8; |
刪除 | pop刪除末尾元素 classname.pop() pop刪除指定元素pop(i) classname.pop(1)
使用remove(object)函式,根據資料內容刪除 要刪除的內容必須在列表中,否則會報錯 移除列表中所有的資料
|
不能修改 | S.discard(x)移除S中元素x,如果x不在集合S中,不報錯 S.remove(x)移除S中元素x,如果x不在集合S中,產生KeyError異常 S.clear()移除S中所有元素 |
刪 pop() del dict['Name']; # 刪除鍵是'Name'的條目 |
排序 | 升序 列表.sort() 降序 列表.sort(reverse=True) 倒序,反轉 列表.reverse() |
不能修改 | 無 | 無 |
統計 | len(列表) 列表的長度 列表.count(資料) 資料在列表中出現的次數 |
len(元組) 元組的長度 列表.count(資料) 資料在元組中出現的次數 |
len(S)返回集合S的元素個數 |
|
應用場景 | 1、列表儲存相同型別的資料 針對列表中的每一項元素,執行相同的操作
1.查詢和插入的時間隨著元素的增加而增加 |
1、函式的引數和返回值,一個函式可以接收任意多個引數,一次返回多個數據
1.比列表操作速度快 |
包含關係比較 x in S 判斷S中元素x, x在集合S中,返回True,否則返回False x not in s 資料去重:集合型別所有元素無重複 set(x)將其他型別變數x轉變為集合型別 |
zip函式可以實現兩個類別組合成字典 1.查詢和插入的速度極快,不會隨著key的增加而增加 |
序列 : 序列是一個基類型別 可以衍生為字串型別、元組型別、列表型別
通用操作符: x in s 如果x是序列s的元素,返回True,否則返回False
x not in s 如果x是序列s的元素,返回False,否則返回True
s + t 連線兩個序列s和t
s*n 或 n*s 將序列s複製n次
s[i] 索引,返回s中的第i個元素, i是序列的序號
s[i: j] 或 s[i: j: k] 切片,返回序列s中第i到j以k為步長的元素子序列
通用方法和函式: len(s) 返回序列s的長度,即元素個數
min(s) 返回序列s的最小元素, s中元素需要可比較
max(s) 返回序列s的最大元素, s中元素需要可比較
s.index(x) 或
s.index(x, i, j) 返回序列s從i開始到j位置中第一次出現元素x的位置
s.count(x) 返回序列s中出現x的總次數
如有疑問或者不對的地方,歡迎留言評論