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

字典,元組,列表,集合的區別

列表 和字典的一點區別

列表:隨著插入的增加,訪問速度變慢;佔用記憶體少

字典:插入資料增加,訪問速度不變;但佔用記憶體多(消耗記憶體換時間)

列表,字串,元組:可通過切片訪問,因為都有下標

集合,字典:沒有下標,無法通過下標訪問

------------------------元組(tuple)和列表(list)的不同----------------------------------
列表(list)和元組(tuple)的不同

         列表                  元組
元素   方括號              圓括號


可變性  可變               不可變


操作  增刪改查              搜尋


為什麼要有元組:1、安全(資料不可改)2、查詢速度快(因為不能修改,所以不必檢索)




1、列表可以隨意插入刪除元素,而元組不能隨意插入或刪除元素,也不能排序。
2、建立列表用中括號[],元組是用小括號()和逗號,。list1=[1,2]   tuple= (2,3)
   l=[]   ##建立列表只要有中括號就能建立。
   t=(1)  ##這裡t是整型型別
   t=(1,) ##逗號和小括號配合,此時t是元組型別
t= 1,3,4,5 ##用逗號隔開,此時t也是元組型別
 
3*(2)  結果為:6
3*(2,) 結果為:2,2,2
         
--------------------------------------集合和列表--------------------------------------------
列表可以儲存相同的資料,而集合會將相同的資料合併。
例:
>>> num=[1, 2, 3, 3, 5, 6]
>>> type(num)
<class 'list'>
>>> set(num)    ##set排序是無序的。
{1, 2, 3, 5, 6}
--------------------------------下標訪問(一些通用操作符)---------------------------------------
能通過下標訪問的叫序列類包括:字串,列表,元組
列表:l=[1,3,4]  l[0]為:1
元組:t=(1,2,3)  t[0]為:1
字串:str1='sfsfs'  str1[0]為:s
  
無法通過下標訪問的叫對映類:包括字典:
字典:dic={'a': 1, 'b': 2}  dic['a']為
   集合


對於序列來說,存放的的值可以有重複的,而對映類中無法存放相同的數值。
所以序列類有些操作是對映類沒有的。
1、連線操作符:+ 把一個序列和另一個相同的序列做連結
    a='aa'  b='bb'   >>>a+b 得到:aabb
2、重複操作符:* 當序列需要拷貝多份時
    a='a'  >>a*3  >>aaa  拷貝3份
3、切片操作 []   [:]   [::]
a='python'  >>>a[0]  得到:p  順序數下標從0開始
           >>>a[:]  得到所有:python
    >>>a[0:2]得到3個數:pyt
               >>>a[-2] 得到第二個數:o   倒數的話下標從1開始t
              
              >>>a[-4:-2] 得到:th  從-4位到-2位,從右往左數
              >>>a[-2:-4] 得到空,從-2到-4為,不能從左往右數
              >>>a[-2:-4:-1]得到:ho,從-2到-4位,定義了-1可從左往右數
              >>>a[::-1] 得到:nohtyP 逆序
   a ='10001000100010001'
                        >>>a[0:17:4] 返回:11111,第0位算在內,開始跨4步。
               >>>a[::4] 返回:1111 頭尾不寫代表預設最小,最大
               >>>a[::-4]返回:1111 負號反向每隔4位數輸出


4、成員操作符:in  ,not in
a='python'
          >>>'PP' in a    >>>False
          >>>'p'  in a    >>>True
          
 
------------------------------------序列常用的函式--------------------------------
    1、len()
    2、max() and min() 獲取最大和最小值
         a=(1,2,3)
       >>>max(a)   >>3
         >>>min(a)   >>1
    3、str(),repr() 
          str是將數值轉化為字串;
          repr是將物件(包括)轉化為字串,包括:數值,字串,元組,列表,集合,字典。

-----------------------------------------------------------------------------------
字典,集合,列表,元組


1、長相:
字典:
dic = {'a':1,'b':2}
a=dict(one=1,two=2)
b=dict([('a',1),('b',2),('c',3)])
c=dict({'a':1,'b':2,'c':3})


集合:
b=set([('a',1),('b',2),('c',3)])
c=set({'a':1,'b':2,'c':3})
d={1,2.0,3,4}


列表:
list1 = ['physics', 'chemistry', 1997, 2000];
list2 = [1, 2, 3, 4, 5 ];
list3 = ["a", "b", "c", "d"];


元組:
t=(1,3)
t='a','b


2、增刪改


                  增                刪                     改
dict       NULL     pop   update(將2個個字典合併為一個字典,key重複合併values)
                                     clear
         popitem
 



list      append      pop    NULLL
          extend                 clear
   insert                 remove




set       add                pop                      update   (update用來求2或多個集合的並集)
                                 clear
 remove

字典:
1、刪除pop(),括號中是要刪除的值。
2、刪除popitem(),隨機刪除一個值。
3、clear()清除字典




集合:
1、增加集合add()
2、刪除集合remove()


列表:
append函式:給陣列尾部追加一個數值
extend函式:給數值尾部追加一個或多個數值,要用中括號(列表)括起來。
insert函式:在陣列的某個位置插入一個數值


del 列表名[下標]
列表名.remove(刪除的值)
列表明.pop()有引數下標刪除刪除的值,沒引數刪除最後一個。