Python 字典中一鍵對應多個值


#encoding=utf-8  
  
print '中國'  
  
#字典的一鍵多值  
  
print'方案一 list作為dict的值 值允許重復'    
  
d1={}  
key=1  
value=2  
d1.setdefault(key,[]).append(value)  
value=2  
d1.setdefault(key,[]).append(value)  
  
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的值 值允許重復
{1: [2, 2]}

獲取值
[2, 2]
刪除值,會留下一個空列表
{1: []}
檢查是否還有一個值
[]


方案二 使用子字典作為dict的值 值不允許重復
{1: {2: 22, 3: 33}}
獲取值
[2, 3]
刪除值,會留下一個空列表
{1: {}}
檢查是否還有一個值
{}


方案三 使用set作為dict的值 值不允許重復
{1: set([2, 3])}
獲取值
[2, 3]
刪除值,會留下一個空列表
{1: set([])}
檢查是否還有一個值
set([])



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM