1. 程式人生 > >004_015 Python 字典的一鍵多值,即一個鍵對應多個值

004_015 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([])

相關推薦

004_015 Python 字典,一個對應

程式碼如下: #encoding=utf-8 print '中國' #字典的一鍵多值 print'方案一 list作為dict的值 值允許重複' d1={} key=1 value=2 d1.setdefault(key,[]).append(value) va

Python 字典,一個對應

nbsp 多個 div 有一個 value 獲取 OS 是否 bsp #字典的一鍵多值 print‘方案一 list作為dict的值 值允許重復‘ d1={} key=1 value=2 d1.setdefault(key,[]).append(valu

multimap中一個key對應的查詢處理

From:http://zhidao.baidu.com/link?url=s-lktjYYv8TBzqZonvQn0SxGLf7Vgk252-5bNUUxx9wsL_vonx57HvFeN4KN06R3BTc6qOpGWUi2VH7iIH67mMa_ERkAVrIs88cBmdLv8V7 在multi

SQL 拼接字段的&一個字段條記錄的拼接

cells body score 完成 整數 數據類型 pad 參數 需要 如student表: studentID studentName studentScore 01 Alice 90

Excel表格太大,怎麼列印在張紙上?一個1秒搞定!

你在列印Excel表格的時候,有沒有出現過這種情況:本該一頁顯示的內容硬生生被分成兩頁列印。結果只能儘量調小字型、單元格大小,將表格縮成一頁? 其實不用這麼麻煩的,想將表格列印在一張紙上,無需折騰字型、單元格大小,只要一個簡單的設定,就能將Excel表格自動調整為一頁列印,快來學學吧,以後就再也

Python段程式碼,實現接收使用者輸入兩的數字並輸出數字相加後的結果,要求使用者輸入任何內容程式不會報錯

分別採用基礎方法和異常處理方法實現。 基礎方法程式碼如下: num1 = input('請輸入數字1:') if num1.strip() == '': print('輸入錯誤。') exit() elif num1[0] != '.': for

SQL筆記二:過濾條件欄位、模糊匹配和兩之間取、去重

上一節簡單的總結了單表查詢和多表查詢,以下給大家總結了查詢語句的結構,如下: SELECT...FROM...WHERE...GROUP BY...HAVING...ORDER BY...LIMIT... 本節主要總結下常用的條件欄位的匹配問題,最常見的是“=”,如select * from studen

python)軟體安裝及第一個程式

在python官網下載並安裝python3.6.5win+R,輸入cmd我們要進入python互動模式,輸入python由於安裝時的疏漏,在這裡需要設定路徑才可進入python互動模式。“set PATH=%PATH%;”+自己的python安裝路徑提示我們安裝的python

Python+Selenium框架設計篇之6-一個類檔案測試方法情況下測試韌體的寫法

      其實,到前面這一篇文章,簡單的Python+Selenium自動化測試框架就已經算實現了。接下來的主要是介紹,unittest管理指令碼,如何如何載入執行指令碼,再就是採用第三方外掛,實現輸出html的測試報告。本文來介紹下,在同一個類中,多個測試函式時候,測試

Python生成段時間的日期資料及對應的星期幾

import pandas as pd date=pd.date_range('2010/1/1','2010/12/31', freq='D') week=[int(i.strftime("%w")) for i in date] # 0表示星期日 dataframe =

Python一個函式return兩的取法(tuple的切片)

dict = { '元旦': '0101', '情人節': '0214', '植樹節': '0312', '國慶節': '1001', } def get_holiday(words):

一個ip對應域名ssl證書配置-Nginx實現域名證書HTTPS

引用處: 一個ip對應多個域名多個ssl證書配置-Nginx實現多域名證書HTTPS Nginx配置多個HTTPS域名的方法 第一步:一臺伺服器,兩個或者多個域名對映。首先購買https,獲取到CA證書,兩個域名就得到兩套或多套證書 第二步:現在就是Nginx和OpenSSL的安裝與

sql合併列成一個字串,行成一個字串

以這個表為例: sql1: select GROUP_CONCAT(prov_code SEPARATOR ',') AS prov_code from tb_prov_code 可以看出,順序就是表裡面的順序。這裡是按照逗號隔開。 sql2: 想要拼接同一行 select

【laravel】 複雜表單請求驗證類,實現一個對應表單

一、序言 laravel 中提供了兩種驗證請求資料的方法,第一種方法適用於簡單的驗證,表單驗證和業務邏輯放在一起,顯得業務程式碼臃腫,而且重複的驗證規則基本也是複製貼上,程式碼也不好看,這是關鍵。本篇教程就不說這個了,需要了解的請戳這裡。第二種就是建立請求驗證類,下面就詳細說

【laravel】 複雜表單請求驗證類,實現一個對應表單

一、序言 laravel 中提供了兩種驗證請求資料的方法,第一種方法適用於簡單的驗證,表單驗證和業務邏輯放在一起,顯得業務程式碼臃腫,而且重複的驗證規則基本也是複製貼上,程式碼也不好看,這是關鍵

python字串面試題:找出一個字串中第一字母和最後一個字元是第一次重複,中間沒有重複且最長的子串

1.給出任意一個字串,列印一個最長子串字串及其長度,如果有相同長度的子字串,都要一起打印出來,該子字串滿足以下條件, 第一個字母和最後一個字元是第一次重複 這個子字串的中間字母沒有重複 這個子字串是滿足條件裡面的最長的 如: adsasadmasd 中滿足條件的是dmasd   im

負載均衡之DNS域名解析,實現一個域名對應IP地址

    事實上,大型網站總是部分使用DNS域名解析,利用域名解析作為第一級負載均衡手段,即域名解析得到的一組伺服器並不是實際提供服務的物理伺服器,而是同樣提供負載均衡伺服器的內部伺服器,這組內部負載均衡伺服器再進行負載均衡,請請求發到真實的伺服器上,最終完成請求。

負載均衡實現,一個域名對應IP地址

使用負載均衡實現,傳統和常規做法,其他方式需要特殊處理。(dns輪詢,或者自己做解析) 1、一個域名設定多個dns服務或者伺服器進行解析,同一個域名的每個解析都指向不同的ip地址,這樣應答快的dns優先進行解析,這樣就能保證最快定向到指定的網站空間去。如果空間也存在不同地

開啟聯絡人獲取手機號,一個聯絡人對應手機號獲取方式

最近專案中遇到需要開啟通訊錄獲取聯絡人姓名和手機號功能,但是遇到的問題就是如果在一個聯絡人如果對應多個手機號的時候無法調取系統的選擇手機號的功能,這個太坑了,如果自己寫一個通訊錄的話工作量又非常大.下

matlab實現畫散點圖(一個x對應y)

1、具體實現是,首選匯入資料 aray = importdata(’位置‘); [m,n] = size(array); 2、x軸間距設定 x = 1:1:m 3、處理陣列資料  figure(1)