python字典的建立和輸出_字典的創建和使用

直接創建

d = {'age': 23, 'name': 'Daniel', 'sex': 1}

輸出結果:

{'age': 23, 'name': 'Daniel', 'sex': 1}

dict函數

# 通過序列對建立字典

vaulues = [('name', 'Daniel'), ('age', 23), ('sex', 1)]

print dict(values)

# 通過關鍵字建立字典

print dict(name='Daniel', age=23, sex=1)

# 如果 dict 不傳入任何參數將會返回一個空字典

print dict()

輸出結果:

{'age': 23, 'name': 'Daniel', 'sex': 1}

{'age': 23, 'name': 'Daniel', 'sex': 1}

{}

基本字典操作

d = {'name': 'Daniel', 'age': 23, 'sex': 1}

# 返回d項中(鍵-值對)的數量

len(d)

# 刪除鍵為name的項

del d['age']

# 檢查d中是否含有鍵為name的項,返回True或者False

'name' in d

提示:在字典中檢查鍵的成員資格比在列表中檢查值的成員資格更高效,數據結構的規模越大,兩者的效率差距越明顯。

字典的鍵類型(任何不可變類型):int, float, string, tuple

{1: 'Daniel'} # int

{1.2: 'Daniel'} # float

{'name': 'Daniel'} # string

{('name', 'Daniel'): 23} # tuple

字典的格式化字符串

data = {'name': 'Daniel', 'age': 23, 'sex': 1}

template = 'name=%(name)s,age=%(age)s,sex=%(sex)s'

print template % data

template = 'name={name},age={age},sex={sex}'

print template.format(**data)

輸出結果:

name=Daniel,age=23,sex=1

name=Daniel,age=23,sex=1

字典方法

1、clear 清除字典中所有項

d = {'name': 'Daniel', 'age': 23, 'sex': 1}

d.clear()

print d

>>> {}

2、copy 返回一個具有相同鍵值對的新字典(這個方法實現的淺復制)

data1 = {'name': 'Daniel', 'machines': ['foo', 'bar', 'baz']}

data2 = data1.copy()

data1['name'] = 'biu'

data1['machines'].remove('bar')

print data1

print data2

輸出結果:

{'name': 'Daniel', 'machines': ['foo', 'baz']}

{'name': 'biu', 'machines': ['foo', 'baz']}

淺復制說明:(待說明...)

3、deepcopy 返回一個具有相同鍵值對的新字典(這個方法實現的深復制)

from copy import deepcopy

data1 = {'name': 'Daniel', 'machines': ['foo', 'bar', 'baz']}

data2 = deepcopy(data1)

data1['name'] = 'biu'

data1['machines'].remove('bar')

print data1

print data2

輸出結果:

{'name': 'biu', 'machines': ['foo', 'baz']}

{'name': 'Daniel', 'machines': ['foo', 'bar', 'baz']}

深復制說明:(待說明...)

4、fromkeys 使用給定的鍵建立新的字典,每個鍵默認對應的值為None

print dict.fromkeys(['name', 'age'])

# 如果不想使用None作為默認值,也可以自己提供默認值

print dict.fromkeys(['name', 'age'], 'null')

輸出結果:

{'age': None, 'name': None}

{'age': 'null', 'name': 'null'}

5、get 是一個更寬松的訪問字典項的方法,訪問一個不存在的鍵時,沒有任何異常,而得到了None值。還可以自定義默認值,替換None

d = {}

print d.get('name')

print d.get('name', 'N/A')

d['name'] = 'Daniel'

print d.get('name')

輸出結果:

None

N/A

Daniel

6、has_key 檢查字典中是否含有給出的鍵,相當于表達式 k in d,使用那種方式很大程度取決于個人愛好。Python 3.0中不包含這個函數。

d = {}

print d.has_key('name')

d['name'] = 'Daniel'

print d.has_key('name')

輸出結果:

False

True

7、items和iteritems

items將所有的字典以列表方式返回,這些列表項中的每一項都來自(鍵, 值)。但是在返回是并沒有特殊的順序。

iteritems的作用大致相同,但是會返回一個迭代器對象而不是列表

d = {'title': 'Python', 'url': 'http://www.python.org', 'spam': 0}

print d.items()

d = {'title': 'Python', 'url': 'http://www.python.org', 'spam': 0}

it = d.iteritems()

print it

print list(it)

輸出結果:

[('url', 'http://www.python.org'), ('spam', 0), ('title', 'Python')]

[('url', 'http://www.python.org'), ('spam', 0), ('title', 'Python')]

8、keys和iterkeys,keys將字典中的鍵以列表形式返回,而iterkeys則返回針對鍵的迭代器

d = {'title': 'Python', 'url': 'http://www.python.org', 'spam': 0}

print d.keys()

print d.iterkeys()

輸出結果:

['url', 'spam', 'title']

9、pop 用來獲得對應于給定鍵的值,然后將這個鍵-值對從字典中移除

d = {'name': 'Daniel', 'age': 23, 'sex': 1}

d.pop('age')

print d

輸出結果:

{'name': 'Daniel', 'sex': 1}

9、popitem 彈出隨機的項,因為字典并沒有最后的元素或者其它有關順序的概念

d = {'name': 'Daniel', 'age': 23, 'sex': 1}

print d.popitem()

print d

輸出結果:

('age', 23)

{'name': 'Daniel', 'sex': 1}

10、setdefault 類似于get方法,就是能夠獲得與給定鍵相關關聯的值,還能在字典中不含有給定鍵的情況下設定相應的鍵值

d = {}

print d.setdefault('name', 'N/A')

print d

d['name'] = 'Daniel'

print d.setdefault('name', 'N/A')

print d

輸出結果:

N/A

{'name': 'N/A'}

Daniel

{'name': 'Daniel'}

11、update 可以利用一個字典項更新另一個字典

d = {'name': 'Daniel', 'age': 23, 'sex': 1}

x = {'name': 'biu'}

d.update(x)

print d

d.update(name='biubiu')

print d

提供的字典中的項會被添加到舊的字典中,若有相同的鍵則會進行覆蓋

輸出結果:

{'age': 23, 'name': 'biu', 'sex': 1}

{'age': 23, 'name': 'biubiu', 'sex': 1}

12、values和itervalues,values方法以列表的形式返回字典中的值,itervalues返回值的迭代器。與返回鍵的列表不同的是,返回值的列表中可以包含重復元素

d = {1:1, 2:2, 3:3, 4:1}

print d.values()

輸出結果:

[1, 2, 3, 1]

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/528991.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/528991.shtml
英文地址,請注明出處:http://en.pswp.cn/news/528991.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python字符串出棧方法_1.Python實現字符串反轉的幾種方法

1.Python實現字符串反轉的幾種方法題目: 在Python環境下用盡可能多的方法反轉字符串,例如將s "abcdef"反轉成 "fedcba"第一種:使用字符串切片result s[::-1]第二種:使用列表的reverse方法l list(s)l.reverse()result …

linux將日期和日歷信息追加到文件中_Linux常用指令

常用指令 1、幫助指令 man [指令或者配置文件] help 指令 2、文件目錄類指令 1、pwd 功能:顯示當前工作目錄的絕對路徑 2、ls [選項] [目錄或者文件] 功能:列出文件名和目錄使用:ls -l 以列表的形式顯示信息ls -a …

python播放音樂同步歌詞_使用Python下載歌詞并嵌入歌曲文件中的實現代碼

使用python掃描本地音樂并下載歌詞這次這個真的是干貨哦,昨晚弄了半晚上,,,,從8點吃完飯就開始寫,一直到了快12點才弄好,,,新手,傷不起呀。。。。先簡單的說下…

ajax mysql點贊_php+mysql結合Ajax實現點贊功能完整實例

phpmysql結合Ajax實現點贊功能完整實例131415161718192021222324252627282930313233343536//判斷是否已經存在了cookiefunction checkcookie(gindex){var thiscookie goodplus gindex;var mapcookie getCookie(thiscookie)if (mapcookie!null && mapcookie!"&q…

一個搜索框多個按鈕_網站搜索欄設計指南:要不要?怎么設計?

在網站的設計過程中,搜索欄是一個很容易被忽略的部分,但用戶卻依賴它來尋找特定的信息。由于搜索欄是網站中最常用的元素之一,所以搜索欄的設計對用戶體驗有著重要的影響。網站是否需要搜索欄?搜索欄使用背后的思維和心理是幫助用…

mysql的使用優化問題嗎_如何對 mysql 進行優化的問題

3641 天前mingszu-------------------------------------------------------------------------------------------------------------------------------------------------------------------| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Ca…

通過 xlsx 解析上傳excel的數據

一、前言 在前端開發中,特別是在后臺管理系統中,導入數據(上傳excel)到后端是是否常見的功能;而一般的實現方式都是通過接口將excel上傳到后端,再有后端進行數據解析并做后續操作。 今天,來記錄…

狀態機設計的一般步驟_淺談狀態機

來源:公眾號【ZYNQ】ID :FreeZynq整理 :李肖遙本文目錄前言狀態機簡介狀態機分類Mealy 型狀態機Moore 型狀態機狀態機描述一段式狀態機二段式狀態機三段式狀態機狀態機優缺點總結擴展-四段式狀態機01. 前言狀態機是FPGA設計中一種非常重要、…

java中default_Java 中關于default 訪問權限的討論

Java中關于成員變量訪問權限問題一般書中會給出如下表格:簡單地描述一下表中的內容:用private 修飾的成員變量只能在類內部訪問;用default修飾的成員變量可以再內部訪問,也可以被同個包(同一目錄)中的類訪問;default修…

python手機解釋器_python3

Python解釋器Linux/Unix的系統上,Python解釋器通常被安裝在 /usr/local/python3這樣的有效路徑(目錄)里。我們可以將路徑 /usr/local/python3/bin 添加到您的Linux/Unix操作系統的環境變量中(最好參照您python的安裝路徑進行添加),這樣您就可以通過 shel…

increment java_Java中的increment()有什么作用?

publicclassThisTest{privateinti0;//第一個構造器:有一個int型形參ThisTest(inti){this.ii1;//此時this表示引用成員變量i,而非函數參數iSystem.out.println("Intconstructori—...public class ThisTest {private int i0;//第一個構造器&#xff…

python保存模塊_Python使用Pickle模塊進行數據保存和讀取的講解

pickle 是一個 python 中, 壓縮/保存/提取 文件的模塊,字典和列表都是能被保存的.但必須注意的是python2以ASCII形式保存,而在python3中pickle是使用轉換二進制的數據壓縮方法保存數據所以,在保存或者讀取數據的時候,打開文件應該…

java 輸出當月日歷_java 實現打印當前月份的日歷

實現當前日歷的打印,當前日期用*來表示。關鍵得出這個月的第一天是星期幾。基姆拉爾森計算公式W (d2*m3*(m1)/5yy/4-y/100y/400) mod 7在公式中d表示日期中的日數1,m表示月份數。y表示年數。注意1:在公式中有個與其它公式不同的地方&#xff…

pythonmessage用法_請問Mac下如何用python讀取iMessage信息?

很早之前,學習Python web編程的時候,就涉及一個Python的urllib。可以用urllib.urlopen(“url”)。read()可以輕松讀取頁面上面的靜態信息。但是,隨著時代的發展,也來越多的網頁中更多的使用javascript、jQuery、PHP等語言動態生成…

xmlhttprequest 跨域_跨域資源共享(CORS)安全性

跨域資源共享(CORS)安全性背景 提起瀏覽器的同源策略,大家都很熟悉。不同域的客戶端腳本不能讀寫對方的資源。但是實踐中有一些場景需要跨域的讀寫,所以出現了一些hack的方式來跨域。比如在同域內做一個代理,JSON-P等。但這些方式都存在缺陷&…

java 圖片識別 tess4j_圖像文字識別(四):java調用tess4j識別圖像文字

轉自:https://blog.csdn.net/a745233700/article/details/80203340javajava調用tess4j識別圖像文字Tesseract-OCR支持中文識別,而且開源和提供全套的訓練工具,是快速低成本開發的首選。前面記錄過在java中調用tesseract-orc,該方法…

sql in轉換為join_同一個SQL語句,為啥性能差異咋就這么大呢?(1分鐘系列)

《數據庫允許空值,往往是悲劇的開始》一文通過explain來分析SQL的執行計劃,來分析null對索引命中情況的影響,有不少朋友留言,問explain結果中的type字段,ref,ALL等不一樣的值究竟是什么含義。今天花1分鐘簡…

java rmi接口 超時設置_Spring RMI客戶端讀超時設置 | 學步園

標準Java的RMI設置我所知道的有三種方式,其中第1、2種不區分框架均適用,但影響整個JVM級別的RMI服務1. 啟動時設置sun.rmi.transport.tcp.responseTimeout,單位是毫秒java -Dsun.rmi.transport.tcp.responseTimeout502.在應用程序中設置環境變…

python黑客庫長安十二時辰 更新_【Python成長之路】python 從零學爬蟲 -- 沒時間看《長安十二時辰》電視劇怎么辦?直接爬取所有劇情吧!...

【寫在前面】最近大火的《長安十二時辰》真的是好看,算的是良心網劇了。但是由于平時工作時間較長,經常無法準時追劇,并且又因為不想見到元裁那對挨千刀的(作為演員,演技是值得肯定的,角色演繹的讓人看的心煩)。因此就…

java字符串筆試題_五道Java常見筆試題及答案匯總

1、String和StringBuffer的區別?答:Java平臺提供了兩個類:String和StringBuffer,它們可以儲存和操作字符串,即包含多個字符的字符數據。這個String類提供了數值不可改變的字符串。而這個StringBuffer類提供的字符串進行…