1. 程式人生 > >python中列表 元組 字典 集合的區別

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 補

增、刪、改、查

key in d:鍵值key是否在d中,是返回True,否則返回False。

讀取 通過偏移讀取  通過偏移讀取  S.pop()隨機返回S的一個元素,更新S,若S為空產生KeyError異常

通過鍵而不是偏移量來讀取 

查 get(),setdefault(),has_key()

通過dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value

d[k]:返回關鍵字對於的值

新增

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)

del list_1[4]

使用remove(object)函式,根據資料內容刪除  要刪除的內容必須在列表中,否則會報錯

移除列表中所有的資料

list_1.clear()

不能修改

S.discard(x)移除S中元素x,如果x不在集合S中,不報錯

S.remove(x)移除S中元素x,如果x不在集合S中,產生KeyError異常

S.clear()移除S中所有元素

 

刪 pop()
'''通過指定的key值,刪除字典的一個鍵值對
返回被刪除的key對應的value

del dict['Name']; # 刪除鍵是'Name'的條目
dict.clear();     # 清空詞典所有條目
del dict ;        # 刪除詞典

排序

升序  列表.sort()

降序 列表.sort(reverse=True)

倒序,反轉 列表.reverse()

不能修改
統計

len(列表) 列表的長度

列表.count(資料)  資料在列表中出現的次數

len(元組) 元組的長度

列表.count(資料)  資料在元組中出現的次數

len(S)返回集合S的元素個數

len():返回字典中鍵—值對的數量

 

應用場景

1、列表儲存相同型別的資料
2、通過迭代遍歷,在迴圈內部,

針對列表中的每一項元素,執行相同的操作

 

1.查詢和插入的時間隨著元素的增加而增加 
2.佔用空間小,浪費記憶體很少 
所以,dict是用空間來換取時間的一種方法

1、函式的引數和返回值,一個函式可以接收任意多個引數,一次返回多個數據
2、格式字串,格式化字串後面的()本質就是一個元組
3、讓列表不可以被修改(保護資料安全)

 

1.比列表操作速度快 
2.對資料“防寫“ 
3.可用於字串格式化中 
4.可作為字典的key

包含關係比較

x in S 判斷S中元素x, x在集合S中,返回True,否則返回False

x not in s

資料去重:集合型別所有元素無重複

set(x)將其他型別變數x轉變為集合型別

 

zip函式可以實現兩個類別組合成字典

1.查詢和插入的速度極快,不會隨著key的增加而增加 
2.需要佔用大量的記憶體,記憶體浪費多 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

序列 : 序列是一個基類型別   可以衍生為字串型別、元組型別、列表型別

通用操作符: 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的總次數

 

如有疑問或者不對的地方,歡迎留言評論