1. 程式人生 > >python--dict方法總結

python--dict方法總結

優點

1:查詢速度快
2:浪費空間
3:key不可以重複,且不可變
4:資料無序排放

注意

1.任何不可變物件都可用作字典的鍵,如字串、數字、元組等
2.包含可變物件的列表、字典和元組不能用作鍵
3.引用不存在的鍵會引發KeyError異常
4.value可以是字元,數字,列表,元組,字典

構造:

dict  {}                            #空字典
dict={key:value}                    #經典定義
dict2 = dict(x=1,y=2,z=3)           #定義字典另一種方式 //  {'y': 2, 'x': 1, 'z': 3}
Dict1=dict2 #淺複製,只是引用而已id(dict1)==id(dict2) Dict1=dict2.copy() #深複製,2個不同ID的字典id(dict1)!=id(dict2) Dict=dict.fromkeys(seq,val=None) #建立並返回一個新字典,以 seq 中的元素做該字典的鍵,val 做該字典中所有鍵對應的初始值(如果不提供此值,則預設為 None) dict([container]) #創 建 字 典 的 工 廠 函 數 。 如 果 提 供 了 容 器 類 (container) 就用其中的條目填充字典,否則就建立一個空字典。

增加:

dict[key]=value
dict.update(dict2)                  #將字典 dict2 的鍵-值對新增到字典 dict
result = dict(dict1,**dict2)        #將字典 dict2 的鍵-值對與字典dict1的鍵-值對合併為新的dict
dict.setdefault(key,default=None)   #和方法 set()相似,如果字典中不存在 key 鍵,由 dict[key]=default 為它賦值。

刪除:

del d[key]                        #刪除指定key
d.clear() #清空字典 dict.popc(key[, default]) #和方法 get()相似,如果字典中 key 鍵存在,刪除並返回 dict[key],如果 key 鍵不存在,且沒有給出 default 的值,引發 KeyError 異常。 dict.popitem() #隨機彈出(key,value)元組

查詢:

key in dict                        #判斷鍵(key)是否在字典中存在,是返回 True, 否則返回 False
a=dict[key]                        #獲取指定key的值,如果key不存在,會丟擲異常
dict.get(key,[default])            #如果有這個key,返回value,沒有這個key,則賦予預設值
len(dict)                          #返回對映的長度(鍵-值對的個數)
dict.cmp(dict1,dict2)              #比較字典,(優先順序為元素個數、鍵大小、鍵值大小)  #第一個大返回1,小返回-1,一樣返回0 
dict.items()                       #返回一個包含字典中(鍵, 值)對元組的列表
dict.keys()                        #返回一個包含字典中鍵的列表
dict.values()                      #返回一個包含字典中所有值的列表
dict.iter()                        #方法 iteritems(), iterkeys(), itervalues()與它們對應的非迭代方法一樣,不同的是它們返回一個迭代子,而不是一個列表。
dict.iteritems()                   #返回一個dict中(key,value)元組的迭代器物件
d1 = { 'x':1,'y':2,'z':3 }  //i1 = d1.iteritems() //i1.next()  >>('y', 2)使用next方式遍歷每一個元素
dict.iterkeys()                    #返回dict中key的迭代器物件
dict.itervalues()                  #返回dict中value的迭代器物件
dict.viewvalues()                  #返回類似集合方式的字典(值組成)
d1.viewvalues()    //dict_values([2, 1, 3])
dict.viewitems()                   #返回類似集合方式的字典(值組成)(key,value)元組組成
d1.viewitems()     //dict_items([('y', 2), ('x', 1), ('z', 3)])
dict.viewkeys()                    #返回類似集合方式的字典(鍵組成)
d1.viewkeys()      //dict_keys(['y', 'x', 'z'])

修改:

d[key] = value

特性:

zip返回元組組成的列表
zip('xyz','123')                   #[('x', '1'), ('y', '2'), ('z', '3')]對應生成列表
zip('xyzm','123')                  #[('x', '1'), ('y', '2'), ('z', '3')]多餘項被捨棄
zip('xyz','123','qer')             #[('x', '1', 'q'), ('y', '2', 'e'), ('z', '3', 'r')]        
dict(zip('xyz','123'))             #{'y': '2', 'x': '1', 'z': '3'}構造字典
格式化輸出字典
import jsonprint   json.dumps(d,indent=2)     #不同層級以2個空格縮排
字典持久化
先把字典轉換成字串,然後把字串寫入檔案,讀出來時再把字串為字典
寫
import json  
data = json.dumps(d)with open(f,'wb') as f:
  f.write(data)
讀
import json  
with open(f,'wb') as f:
  data = f.read()
d = json.loads(data)

重點
from collections import defaultdict
d=defaultdict(內建函式)
內建函式有:int(), long(), float(), complex(),str(), unicode(), basestring() ,list(), tuple() ,type() ,dict() ,bool() ,set(), frozenset() ,object() ,classmethod() staticmethod() ,super() ,property() ,file()
功能:dict中value預設值為內建函式的預設值,且value的型別為內建函式的型別,如果是普通的dict,則對於不存在的key,其value是不存在的,訪問會報錯,但對於defaultdict,對於不存在的key,其value存在,為內建函式的預設值
d=defaultdict(lambda:0) 初始化為0
d=defaultdict(int) 初始值為int()的初始值0
d=defaultdict(list) 初始值為list()的初始值[]
d=defaultdict(dict) 初始值為dict()的初始值{}

相關推薦

python--dict方法總結

優點: 1:查詢速度快 2:浪費空間 3:key不可以重複,且不可變 4:資料無序排放 注意: 1.任何不可變物件都可用作字典的鍵,如字串、數字、元組等 2.包含可變物件的列表、字典和

Python str方法總結

error part encoding baidu ndt 包含 most PC split 1.  str.capitalize() #capitalize 使字符串首字母大寫 test = ‘afaASN‘ v1 = test.capitalize() print(

python dict 方法

說字典方法之前,我們先來說幾個巧用字典取值的方法 1: d = {'name':'zhang','age':25,'job':'IT'}### 第一種方法for key1in d:     print(key1,d[key1])####  輸出結果age 25job IT

python--set方法總結

概述 特點:一個無序不重複元素集 功能:關係測試(並,交,差,對稱差)和消除重複元素 特殊:sets不支援indexing, slicing, 或其它類序列(sequence-like)的操作。

Java呼叫Python程式方法總結(最全最詳細)

如何使用Java呼叫Python程式       本文為大家介紹如何java呼叫python

Pythondict(字典)方法總結

字典簡介: 使用鍵-值(key-value)儲存資料,具有極快的查詢速度 key的特性: 1.字典中的key必須唯一 2.key必須是不可變物件 3.字串、整數等都是不可變的,可以作為key 4.list是可變的,不能作為key

python os模塊功能和方法總結

isp 通用 工作 相同 使用 結束 所有 erro 大量 1 os.sep 可以取代操作系統特定的路徑分割符 2 os.linesep 字符串給出當前平臺使用的行終止符。例如,Windows使用‘\r\n‘,Linux使用‘\n‘ 而Mac使用‘\r‘。

Python Selenium 常用方法總結

display hand 刪除 chrom width attr esc ctrl sage 1.獲取當前頁面的Url 方法:current_url 實例:driver.current_url 2.獲取元素坐標 方法:location 解釋:首先查找到你要

【學習】Python進行數據提取的方法總結【轉載】

多個 pandas flow cells nump 特定 blue 和數 index 鏈接:http://www.jb51.net/article/90946.htm 數據提取是分析師日常工作中經常遇到的需求。如某個用戶的貸款金額,某個月或季度的利息總收入,某個特定時間段的

python—類的屬性和方法總結

python一、類的屬性總結(類的屬性定義在方法外,對象的屬性定義在方法內)理解:類的(靜態)屬性:(人類的五官,理解為變量)類的(動態)方法:(人類吃穿住行,理解為一個函數,至少帶一個參數self,指向類本身)對象:類的實例化,之後才能有屬性和方法1)類的屬性,也是公有屬性;類的私有屬性2)對象的公有屬性;

Python 字符串常用方法總結

style sdi 括號 16px 空格 精度 意思 字符 dst 明確:對字符串的操作方法都不會改變原來字符串的值 1,去掉空格和特殊符號 name.strip() 去掉空格和換行符 name.strip(‘xx‘) 去掉某個字符串 name.lstrip() 去掉

python os模塊常用方法總結

rmdir src dst 系統信息 nbsp isf pre os模塊 text 該模塊提供一種便捷的方式來操作系統 os.environ:返回系統環境變量 os.getenv(env):返回環境變量env的值 os.getpid():當前程序的進程 os.uname(

Python list和dict方法

ict insert eve 創建 val 指定元素 獲取 upd 插入 ###list類的方法###append 列表內最後增加一個元素a = [1,2,3,4,5,6,"dssdsd"]a.append(5)print(a)###clear 清空列表內的元素示例:a =

python內置方法總結

hash 文件中 數通 返回值 fse 文件讀寫 byte nds 十進制轉二進制 # 註意:內置函數id()可以返回一個對象的身份,返回值為整數。這個整數通常對應與該對象在內存中的位置,但這與python的具體實現有關,不應該作為對身份的定義,即不夠精準,最精準的還是

Python Selenium 常用方法總結(不斷補充)

hand 常用方法 ctrl str 但是 最後一個元素 orm 選擇 輸入 還有此篇內容也豐富Selenium常見元素定位方法和操作的學習介紹 selenium Python 總結一些工作中可能會經常使用到的API。 1.獲取當前頁面的Url 方法:current_u

Selenium2+python自動化-窗口多標簽處理方法總結(轉載)

left 內置 drive sele 瀏覽器中 height sre 對象 處理方法 本篇轉自博客:上海-小T 原文地址:https://i.cnblogs.com/EditArticles.aspx?opt=1 我們在用Selenium遇到多個瀏覽器窗口或單個瀏覽器多個標

python中執行shell的兩種方法總結

sleep follow 命令執行 inux 接收 以及 Go ber BE 這篇文章主要介紹了python中執行shell的兩種方法,有兩種方法可以在Python中執行SHELL程序,方法一是使用Python的commands包,方法二則是使用subprocess包,這

Python字符串分割方法總結

google string split 長度 .html 例如 more class rev Python中字符串分割的常用方法是直接調用字符串的str.split方法,但是其只能指定一種分隔符,如果想指定多個分隔符拆分字符串需要用到re.split方法(正則表達式的spl

Python dict(字典) 詳細總結

one dump TE port 數字 class 轉換 PE 持久 示例: d={ ‘name‘:‘yy‘ } key值判斷 d.has_key(‘name‘) #如果有key返回True d.get(‘name‘) #如果沒有key返回None 添加與更

No module named _tkinter, please install the python-tk package 解決方法總結

not 原因 sin 程序開發 找到 pytho iss 配置 重新   0. 前言   在ipython環境中,要用到matlotlib庫,運行.py文件時,提示以下錯誤:   No module named _tkinter, please install the py