建立字典
工廠方法dict()
>>> fdict = dict((['x', 1], ['y', 2])) #使用元組,其中每個元素為列表
>>> fdict
>>> fdict = dict([('x', 1), ('y', 2)]) #使用列表,其中每個元素為元組
>>> fdict
使用內建方法fromkeys()建立乙個「預設」字典,字典中元素具有相同的值(預設為none)
>>> fdict = {}.fromkeys(('x', 'y'), 1)
>>> fdict
>>> fdict = dict.fromkeys(('x', 'y'), 1) #dict為字典關鍵字
>>> fdict
如何訪問字典中的值
要想遍歷乙個字典,只需迴圈檢視它的鍵
>>> for key in fdict.keys():
print 'key=%s, value=%s' %(key, fdict[key])
也可以不再使用keys()
>>> for key in fdict:
print 'key=%s, value=%s' %(key, fdict[key])
訪問字典中的乙個資料元素,它的鍵在字典中不存在時,會產生keyerror異常。
檢查字典中是否有某個鍵,方法has_key(), in或not in操作符。(*has_key()已棄用)
更新字典
>>>fdict['x'] = 10
刪除字典元素和字典
>>>del fdict['x'] #刪除鍵為』x'的條目
>>>fdict.clear() #刪除fdict所有的條目,fdict清空
>>>del fdict #刪除整個fdict字典
>>>fdict.pop('x') #刪除並返回鍵為『x'的條目
字典操作型別操作符
*避免使用內建物件名字作為變數的識別符號(如:dict, list, file, bool, str, input, len)
*字典可以和所有的標準型別操作符一起工作,但不支援拼接(concatenation)和重複(repetition),這些操作對序列才有意義。
>>> t = fdict + fdict2 #typeerror
traceback (most recent call last):
file "", line 1, in
t = fdict + fdict2
typeerror: unsupported operand type(s) for +: 'dict' and 'dict'
標準型別函式
type()
>>> type(fdict)
>>> type(dict)
str()
>>> str(fdict) ""
>>> fdict
cmp()
字典通過這樣的演算法來比較的:比較字典的長度->比較字典的鍵->比較字典的值->exact match,字典相等
對映型別的相關函式
dict([container])
*工廠函式被用來建立字典,如不提供引數,會生成空字典
*當容器型別物件作為乙個引數傳遞給方法dict()時,引數必須是可迭代的,如乙個序列,或乙個迭代器,或乙個支援迭代的物件,每個迭代的元素必須成堆出現,在每個值對中,第乙個元素是字典的鍵,第二個元素是字典的值。
>>> dict(zip(('x', 'y'), (1,2)))
>>> dict((('x', 1), ('y',2)))
>>> dict([['x', 1], ['y',2]])
>>> dict([('xyz'[i], i) for i in range(0,3)])
>>> dict(x=1,y=2) #關鍵字引數
>>>dict(dict2) #字典引數,使用字典的內建方法copy會更快。
hash(obj)
返回物件的雜湊值,可判斷某個物件是否可以作為乙個字典的鍵(hash()返回值整數,無錯誤或異常)。
將非可雜湊型別作為引數傳遞給hash()方法,會產生typeerror錯誤,作為鍵給字典賦值時同樣會出錯。
字典型別相關方法
setdefault(key, default=none)
>>> fdict = dict(x=1,y=2)
>>> fdict
>>> fdict.setdefault('x',100)
1>>> fdict
>>> fdict.setdefault('z', 100)
100>>> fdict
iteritems(), iterkeys(), itervalues()
其對應方法items(), keys(), values()的返回值都是列表,如資料集很大會導致很難處理。
iter()返回惰性賦值的迭代器,所以節省記憶體,將來這些方法會返回強大的物件。
*所有不可變的型別都是可雜湊的,所以都可以作為字典的鍵
*對於數字,值相等的數字表示相同的鍵,比如整數1和浮點數1.0雜湊值相同,是相同的鍵
*也有一些可變物件是可雜湊的,可以做字典的鍵,比如實現__hash__()特殊方法的類。
*用元組做有效的鍵,元組中必須只包括數字,字串等不可變引數
python對映型別
python中的字典可以通過大括號 建立,建立模式如下 我們之前講解集合型別時說過,集合也可以通過大括號和賦值語句的形式建立,因此字典也具有和集合類似的性質 鍵值對之間無序且不能重複,簡單來說可以把字典型別看成是元素是鍵值對的集合。一般來說字典中的鍵值對訪問模式如下 採用中括號進行訪問 值 字典變數...
Python學習筆記之資料型別
計算機簡而言之為進行計算的機器。計算機的所有功能的本質是計算功能,無論是網路資訊發布還是醫院的計費系統,其本質都是計算。而計算機語言則是人類與計算機互動的語言,人類通過計算機語言告訴計算機做什麼事情。python自然也不例外,它實際上就是人類與計算機溝通的語言或者說工具。然而,python天生又是為...
python學習筆記之資料型別
1 列表推導式 列表推導式可從乙個資料序列構建另乙個新的資料序列結構體 基本格式 variable out exp res for out exp in input list if out cond out exp res 列表生成元素表示式,可以是有返回值的函式。for out exp in in...