Python 字典的一鍵多值,即乙個鍵對應多個值

2021-09-25 20:19:09 字數 1776 閱讀 9082

#encoding=utf-8

print '中國'

#字典的一鍵多值

print'方案一 list作為dict的值 值允許重複'

d1={}

key=1

value=2

value=2

print d1

#獲取值

print '方案一 獲取值'

print list(d1[key])

print '方案一 刪除值,會留下乙個空列表'

d1[key].remove(value)

d1[key].remove(value)

print d1

print '方案一 檢查是否還有乙個值'

print d1.get(key,)

print '方案二 使用子字典作為dict的值 值不允許重複'

d1={}

key=1

keyin=2

value=11

d1.setdefault(key,{})[keyin]=value

keyin=2

value=22

d1.setdefault(key,{})[keyin]=value

keyin=3

value=33

d1.setdefault(key,{})[keyin]=value

print d1

print '方案二 獲取值'

print list(d1[key])

print '方案二 刪除值,會留下乙個空列表'

del d1[key][keyin]

keyin=2

del d1[key][keyin]

print d1

print '方案二 檢查是否還有乙個值'

print d1.get(key,())

print '方案三 使用set作為dict的值 值不允許重複'

d1={}

key=1

value=2

d1.setdefault(key,set()).add(value)

value=2

d1.setdefault(key,set()).add(value)

value=3

d1.setdefault(key,set()).add(value)

print d1

print '方案三 獲取值'

print list(d1[key])

print '方案三 刪除值,會留下乙個空列表'

d1[key].remove(value)

value=2

d1[key].remove(value)

print d1

print '方案三 檢查是否還有乙個值'

print d1.get(key,())

''''''

列印結果如下:

中國

方案一 list作為dict的值 值允許重複

獲取值[2, 2]

刪除值,會留下乙個空列表

檢查是否還有乙個值

方案二 使用子字典作為dict的值 值不允許重複

}獲取值

[2, 3]

刪除值,會留下乙個空列表

}檢查是否還有乙個值

{}方案三 使用set作為dict的值 值不允許重複

獲取值[2, 3]

刪除值,會留下乙個空列表

檢查是否還有乙個值

set()

python 字典的一鍵多值

今天在寫乙個小 的時候要用到這樣的資料結構 乙個由dict 組成的list列表。可是,如何實現呢?查閱了 python cookbook 有以下三種方式 1.d1 2.d2 d2.setdefualt key,value 1 使用字典作為dict的值,自然而然的消滅了重複值的可能 3.d3 d3.s...

Python一鍵多值

import csv file path f jddata classify300.csv csvfile file file path,rb reader csv.reader csvfile 初始化字典 adict dict 遍歷csv檔案裡的每一行資料,其中imagename為資料的第一列,c...

Day46 Python中字典的一鍵多值小知識點

在字典中將鍵對映到多個值上 d 使用列表來對映可以保留元素插入的順序 e b 使用集合來影射可以去重且不在意順序就像我們在其他應用場景比如django下就常常看到一鍵多值 databases 那麼當我們想建立一鍵多值的字典,同時當對字典做迭代或序列化操作時,也能控制其中元素的順序怎麼辦?自帶的col...