1. 程式人生 > >(五)字典,集合

(五)字典,集合

一. 字典

1.什麼是字典

        字典是以key:value的形式來儲存資料

        {}表示. 儲存的是key:value

2. 字典的增刪改查(重點)

        1). 新增

           a) dic[

key] =

           b)setdefault(),此方法可以輸入一個引數,也可以輸入兩個引數。

            一個引數時,作為key使用,這時,如果字典中沒有這個key,那麼就把這個key新增到字典中,值為None。兩個引數時,第一個作為key,第二個作為value,如果字典中沒有這個key,那麼keyvalue就會被儲存在字典中。不管是一個引數還是兩個引數,如果字典中有了相應的

key,那麼就不會再更新新輸入的keyvalue

 

        2). 刪除

            pop(key)類似於列表list[索引]

            popitem( )Python3.6中,刪除的是最後一項

            del  dict[key]這是命令式刪除

            clear( ) 清空字典

        3). 修改

            a)dic[key] =

            b)oldDict.update(newDict) 更新字典

              這個方法,會把newDict中的資料更新到oldDict上,一樣的key對應的value使用newDict的,oldDict中沒有的值,也會新增進入。其實就是把newDict直接複製到oldDict中。

 

dic = {1: "a", 2: "b", 6: 'd'}
dic1 = {1: "g", 2: "e", 6: 'd',3:9}
dic.update(dic1)

 

  列印後:

{1: 'g', 2: 'e', 6: 'd', 3: 9}
{1: 'g', 2: 'e', 6: 'd', 3: 9}

  

4). 查詢

            a)dic[key],檢視單一的一個元素。

            b)get(key, value),如果只是輸入一個引數,作為key使用,如果字典中有對應的key,就返回此key對應的value。如果字典中沒有此key,則返回None。輸入兩個引數時,第一個作為key,第二個作為value。如果字典中有此key,則返回對應的值,如果沒有此key,則返回,自己輸入的第二個引數,即為value

            c)setdefault(key, value),這個方法輸入一個key就可以獲取到對應的value,也算是一個查詢的工具

        5). 遍歷,字典是一個可迭代物件

           a)for item in dict:

              (操作語句)

           item在這裡就是key,可以直接使用

b)for k,v in dict.items():

    上面的k,v就是對應的keyvalue,直接可以使用

這種方式叫解構,也叫解包。類似於 a,b = 1,2 這樣12會分別賦值給ab。也可以如下操作:a,b = (1,2)

 3. 字典的相關操作

        1. keys() 獲取到所有的鍵

          列印:dict_keys([1, 2, 3]),這個值類似於列表,所以在使用for迴圈遍歷時,可以按照列表的方式來展示

  1. values() 獲取到所有的值

          列印:dict_values(['a', 'b', 'd']),這個值類似於列表,所以在使用for迴圈遍歷時,可以按照列表的方式來展示

  1. items() 拿到所有的鍵值對

  使用方式在2中的遍歷已使用。

4. 字典的巢狀

        字典裡可以存放各種資料,如下:

av_catalog = {
    "歐美": {
        "www.youporn.com": ["abc", "def"],
        "www.pornhub.com": ["123大", "345"],
        "letmedothistoyou.com": ["wer", "try"]    },
    "日韓": {
        "th": ["rrr", "verygood"]
    },
    "大陸": {
        "de": ["wer", "bgbg"]
1:True
    }
}

二、集合

 集合中儲存的都是不可變的值,就相當於儲存的字典的key

1. 集合最主要的作用就是去重複

   

 lst = ["麻將", "牌九", "骰子", "撲克", "老虎", "骰子", "撲克", "老虎", "撲克", "老虎", "撲克", "老虎"]

 去掉上面列表中的重複資料,可以如下面的程式碼:

li = []
for v in lst:
    if v not in li:
        li.append(v)
print(li)

 使用set集合,可以如下程式碼:

 

s = set(lst)
lst = list(s)
print(lst)

 

 兩種方式,一目瞭然,可以看到,使用set集合會更方便簡單一些。

2.

  set.add(不可變的值),列表,字典不可以被新增。

3.

  set.update( ),這個方法類似於列表的extend( )方法,會把輸入的元素,按順序再新增到set中。

 

s = {"a",2}
s.update("def")
print(s)

 

 列印後:

{2, 'f', 'e', 'a', 'd'}

  

s = {"a",2}
s.update({"def",34})
print(s)

 列印後:

{2, 'a', 34, 'def'}

 由以上兩個輸出還可以看出一個問題,就是,集合中的資料沒有順序,其實是hash處理的結果。