1. 程式人生 > >Python 3語法小記(四)字典 dictionary

Python 3語法小記(四)字典 dictionary

字典是Python裡面一種無序儲存結構,儲存的是鍵值對 key - value。關鍵字應該為不可變型別,如字串、整數、包含不可變物件的元組。

字典的建立很簡單,用 d = {key1 : value2, key2 : value2}的形式就可以建立一個新的字典,當然也可以通過 dict 接受一個含有鍵,值的序列對或者關鍵字引數來建立字典。

鍵可以是多種型別,但鍵是唯一的不重複的,值可以不唯一

>>> d = {'a':1, 'b':2}
>>> d
{'b': 2, 'a': 1}
>>> L = [('Jonh',18), ('Nancy',19)]
>>> d = dict(L)  #通過包含鍵值的列表建立
>>> d
{'Jonh': 18, 'Nancy': 19} 
>>> T = tuple(L)
>>> T
(('Jonh', 18), ('Nancy', 19))
>>> d = dict(T) #通過包含鍵值的元組建立
>>> d
{'Jonh': 18, 'Nancy': 19}
>>> d = dict(x = 1, y = 3)  #通過關鍵字引數建立
>>> d
{'x': 1, 'y': 3}
>>> d[3] = 'z'
>>> d
{3: 'z', 'x': 1, 'y': 3}
還有一個建立字典的方法就是 fromkeys(S [ , v]) python裡的解釋是 New dict with key from S and value equal to v ,即將S裡的元素作為鍵,v作為所有鍵的值,v 的預設值為 None。可以通過已存在的字典 d 呼叫 d.fromkeys(S [, v] ) 也可以通過型別呼叫 dict.fromkeys( S [, v] )
>>> d
{3: 'z', 'y': 3}
>>> L1 = [1,2,3]
>>> d.fromkeys(L1)
{1: None, 2: None, 3: None}
>>> {}.fromkeys(L1,'nothing')
{1: 'nothing', 2: 'nothing', 3: 'nothing'}
>>> dict.fromkeys(L1,'over')
{1: 'over', 2: 'over', 3: 'over'}


字典是無序的,所以不能通過索引來獲取值,要通過鍵來找到關聯值。對於不存在的鍵,會出現錯誤KeyError

>>> d
{3: 'z', 'x': 1, 'y': 3}
>>> d[3]
'z'
>>> d['x']
1
>>> d[0]
Traceback (most recent call last):
  File "<pyshell#26>", line 1, in <module>
    d[0]
KeyError: 0
字典操作和方法:

len( d )  返回字典d裡面的鍵值對數目

x in d   查詢字典d中是否有鍵 x

>>> d = {'x':1,'y':3}
>>> len(d)
2
>>> 'x' in d
True
>>> 'z' not in d
True

d [ x ] = y  若鍵 x 存在,則修改 x 對應的值為 y, 若鍵 x 不存在,則在字典 d 中增加鍵值對 x : y

>>> d
{'x': 1, 'y': 3}
>>> d['x'] = 1.5
>>> d
{'x': 1.5, 'y': 3}
>>> d['z'] = 5
>>> d
{'z': 5, 'x': 1.5, 'y': 3}


del d[x]  刪除字典 d 中鍵為 x 的鍵值對,若 x 不存在會出現 KeyError

>>> d = {'z': 5, 'x': 1.5, 'y': 3}
>>> del d['x']
>>> d
{'z': 5, 'y': 3}
>>> del d['x']
Traceback (most recent call last):
  File "<pyshell#66>", line 1, in <module>
    del d['x']
KeyError: 'x'

d.clear() 清空字典d

d.copy() 對字典 d 進行淺複製,返回一個和d有相同鍵值對的新字典

>>> d
{'z': 5, 'y': 3}
>>> d.copy()
{'z': 5, 'y': 3}

d.get( x [ , y]) 返回字典 d 中鍵 x 對應的值,鍵 x 不存在的時候返回 y, y 的預設值為None

>>> d = {'z': 5, 'x': 1.5, 'y': 3}
>>> d.get('x')
1.5
>>> del d['x']
>>> d.get('x')
>>> d.get('x','nothing')
'nothing'

d.items() 將字典 d 中所有鍵值對以dict_items的形式返回(Python 2中d.iteritems() 返回一個針對鍵值對的迭代器物件,Python 3中沒有 iteritems 方法了)

>>> d = {'z': 5, 'x': 1.5, 'y': 3}
>>> d.items()
dict_items([('z', 5), ('x', 1.5), ('y', 3)])
>>> list(d.items())
[('z', 5), ('x', 1.5), ('y', 3)]

d.keys() 將字典 d 中所有的鍵以dict_keys形式返回(Python 2 中d.iterkeys() 返回一個針對鍵的迭代器物件,Python 3 沒有此語法)

>>> d.keys()
dict_keys(['z', 'x', 'y'])
>>> for x in d.keys():
	print(x)

	
z
x
y

d.pop( x ) 返回給定鍵 x 對應的值,並將該鍵值對從字典中刪除

>>> d = {'z': 5, 'x': 1.5, 'y': 3}
>>> d.pop('x')
1.5
>>> d.pop('x')
Traceback (most recent call last):
  File "<pyshell#92>", line 1, in <module>
    d.pop('x')
KeyError: 'x'

d.popitem( ) 返回並刪除字典 d 中隨機的鍵值對

>>> d = {'z': 5, 'x': 1.5, 'y': 3}
>>> d.popitem()
('z', 5)
>>> d.popitem()
('x', 1.5)

d.setdefault( x, [ , y ] )  返回字典 d 中鍵 x 對應的值,若鍵 x 不存在,則返回 y, 並將 x : y 作為鍵值對新增到字典中,y 的預設值為 None

>>> d = {'z': 5, 'x': 1.5, 'y': 3}
>>> d.setdefault('x')
1.5
>>> del d['x']
>>> d.setdefault('x','Look!')
'Look!'
>>> d
{'z': 5, 'x': 'Look!', 'y': 3}

d.update( x ) 將字典 x 所有鍵值對新增到字典 d 中(不重複,重複的鍵值對用字典 x 中的鍵值對替代字典 d 中)

>>> d1 = {'x':1, 'y':3}
>>> d2 = {'x':2, 'z':1.4}
>>> d1.update(d2)
>>> d1
{'z': 1.4, 'x': 2, 'y': 3}

d.values( ) 將字典裡所有的值以dict_values 的形式返回(Python 2 中d.itervalues() 返回針對字典d裡所有值的迭代器物件,Python 3無此語法)

>>> d1
{'z': 1.4, 'x': 2, 'y': 3}
>>> d1.values()
dict_values([1.4, 2, 3])
>>> list(d1.values())
[1.4, 2, 3]

相關推薦

Python 3語法小記字典 dictionary

字典是Python裡面一種無序儲存結構,儲存的是鍵值對 key - value。關鍵字應該為不可變型別,如字串、整數、包含不可變物件的元組。 字典的建立很簡單,用 d = {key1 : value2, key2 : value2}的形式就可以建立一個新的字典,當然也可以通

python基礎語法總結-- 字典dic + 元組tuple

目錄 一. 字典 1. 讀取 2. 新增 3. 修改 4. 刪除 5. 清空 6. 複製文字 7 遍歷 a. 遍歷鍵值對 b. 遍歷鍵 c. 遍歷值 二. 元組 一. 字典 字典型別類似於鍵值對key-value的一種資料結構,其中鍵不能重

python基礎語法總結-- list列表

python常用系統函式方法與模組 python基礎語法總結(一)-- python型別轉換函式+檔案讀寫 python基礎語法總結(二)-- 函式function python基礎語法總結(三)-- 數與字串 python基礎語法總結(四)-- list列表

python3 語法小記 sys.stdout、sys.stdin

如果需要更好的控制輸出,而print不能滿足需求, 可以使用sys.stdout、sys.stdin 1.sys.stdout 在python中呼叫print時,事實上呼叫了sys.stdout.write(obj+'\n') print將需要得內容列印到控制檯上,然後追加一個換行符。

java基礎學python----------字典,集合

字典 類似於java中的hashmap 建立字典  使用{}建立字典  使用:指明鍵:值對 my_dict = {'John': 86411234, 'Bob': 86419453,'Mike': 86412387}  鍵必須是不可變的且不重複,值可以是

python 基礎篇字典常用操作方法

# 字典類似Map一樣的{key,value}結構; # 字典建立 userMap ={"name":"王力巨集","age":"18","love":"dog"} ; print(userMap) # 字典取值,根據key進行取值 get(key) name = userMap.get("na

Python 接口測試

數列 格式 dumps code 輸出 pre weather 標準 lang 五:python數列化和反序列化 把python的對象編碼轉換為json格式的字符串,反序列化可以理解為:把json格式 字符串解碼為python數據對象。在python的標準庫中,專門提供了j

python學習之路

[1] size class dex epc uri msu 語句 這就是 繼續昨天的學習,學到了數組。 首先有兩個數組,name1和name2.我們可以將兩個數組合並 name1=[1,2,3,4] name2=[5,6,7,8] names=name1.extend(

python機器學習實戰

畫畫 import 測試數據 trac 1+n read dex 缺失值 類型 python機器學習實戰(四) 版權聲明:本文為博主原創文章,轉載請指明轉載地址

Python爬蟲實例網站模擬登陸

opener 運行 webkit zh-cn head window targe Coding 破解 一、獲取一個有登錄信息的Cookie模擬登陸 下面以人人網為例,首先使用自己的賬號和密碼在瀏覽器登錄,然後通過抓包拿到cookie,再將cookie放到請求之中發送請求即可

Python數據結構 字典

字典0x 01 字典簡介 子典和列表是python中最常用的兩種數據類型,字典是鍵值對(key-value)格式的數據類型,它和列表一樣也有索引,但不是列表中的下標,而是使用key來作為索引,key所對應的值就是value,所以字典是無序的,因此任何時候只要訪問字典的key,便可以得到對應的value,

Python學習記錄——Ubuntu計劃任務、grep、正則表達式

family count style 小時 ash 所有 當前 出現 spa 一.crontab用於計劃任務: 1.參數 (1)-u user:用來設定某個用戶的crontab服務 (2)-e:編輯某個用戶的crontab文件內容。如果不指定用戶,則表示編輯當前用戶的cro

《可愛的Python》讀書筆記

grep 遞歸調用 不斷否定自己,但要堅持最初的意願。小白已經實現了"將光盤內容索引存儲為硬盤上的*.cdc文本文件",並獲得了命令行工具樣的程序,可以通過命令行調用python pycdc.pyw -e test.txt快速指定文件名。類似grep一樣,現在要實現搜索的功能,打開

Python學習之路 爬蟲HTTP和HTTPS

CP 發出 net 長度 現在 消息頭 理論 LV 模型 HTTP和HTTPS HTTP協議(HyperText Transfer Protocol,超文本傳輸協議):是一種發布和接收 HTML頁面的方法。 HTTPS(Hypertext Transfer Protoc

課後筆記一:Python基礎語法介紹1

Python3.6.5我們總是找借口說還有時間去做某事,或者完成某事,結果總是不了了之。比如拖到現在才寫第一課聽課筆記。 第一節課,老師對以下內容做了分享,大致分為 環境配置 開發平臺:Mac OS Version 10.13.2 老師講課的是在Windows 10 我選擇在Mac OS進行Pyth

python---基礎知識回顧模塊sys,os,random,hashlib,re,json,xml,shutil,configparser,logging,datetime,time,集合,堆,雙端隊列,其他

ID 正常 空值 字符 預測 platform OS normal 生成 前提:dir,__all__,help,__doc__,__file__ dir:可以用來查看模塊中的所有特性(函數,類,變量等) >>> import copy >>

python基礎:集合set字典direction介紹

三、字典(dict) 1.字典的建立賦值建立字典In [2]: d = {1,True,"hello"} In [3]: type(d)Out[3]: set #字典由key和value構成,一個key對應一個value,key-value , 鍵值對In [4]: d = {1:"freya",2:"

python入門學習筆記——if語句

5. if語句 5.1  簡單if語句 sum = 20; if sum < 19:     print('OK')        5.2  if-else

【pykafka】爬蟲篇:python使用python連線kafka介紹

本人菜雞,最近還更新python的爬蟲系列,有什麼錯誤,還望大家批評指出! 該系列暫時總共有4篇文章,連線如下: 【python】爬蟲篇:python連線postgresql(一):https://blog.csdn.net/lsr40/article/details/83311860

python面向物件學習繼承

目錄 1. 單繼承 1.1 繼承的概念、語法和特點 1.2 方法的重寫 1.3 父類的 私有屬性 和 私有方法 2. 多繼承 2.1 多繼承的使用注意事項 2.2 新式類與舊式(經典)類 1. 單繼承 1.1 繼承的概念、