在元組和列表中,都是通過編號進行元素的訪問,但有的時候我們按名字進行資料甚至資料結構的訪問,在c++中有map的概念,也就是對映,在python中也提供了內建的對映型別--字典。對映其實就是一組key和value以及之間的對映函式,其特點是:key的唯一性、key與value的一對多的對映。
1.字典的建立
字典的基本形態dic=
建立方式1:直接型。
dict1={}
dict2=
建立方式2:使用工廠方法dict,通過其他對映(例如字典)或者(鍵,值)這樣的序列對建立
items=[('name','earth'),('port','80')]
dict2=dict(items)
dict1=dict((['name','earth'],['port','80']))
建立方式3:使用內建方法fromkeys()建立』預設『字典,字典中元素具有相同的value(如果沒有給出,預設為none)
dict1={}.fromkeys(('x','y'),-1)
#dict=
dict2={}.fromkeys(('x','y'))
#dict2=
2.訪問字典中的值
最常用和基本的莫過於利用key訪問value了
a.通過key訪問value之get方法
dict1.get('name')#也可以直接是dictionary['key1'],但是當key1不存在其中時,會報錯;此時用get則返回none
b.隨機訪問其中鍵值對
字典中是無序的,利用popitem方法是隨機彈出乙個鍵值對
c.返回字典所有值的列表
方法values
3.訪問字典中的key
a.檢查是否含有key1
dictionary.has_key(key1)
key1 in dictionarty
key1 not dictionary
b.返回字典中鍵的列表
dictionary.keys()
4.訪問鍵值對
a.遍歷方式
for r in dicitonary #r是dictionary中的鍵值對
b.修改(更新)或新增
dictionary[key1]=value1
5.刪除
a.按key刪除
del dictionary[key1]
b.刪除並返回
dictionary.pop(key1)
c.刪除所有項
dictionary.clear()
del dictionary
6.排序
sorted(dic.iteritems(), key=lambda d:d[1], reverse=false)
說明:對字典dic中的元素按照d[1](d[1]是value,d[0]是key,和d沒關係,可以改為a什麼的)進行公升序排序,通過設定reverse的true或false可以進行逆序,並返回排序後的字典(該排序後的字典由元組組成,其形式為[(key1,value1),(key2,value2),...],且原字典保持不變)
7.其他
len(dictionary) #返回字典項個數
dictionary.item()
dictionary.iteritems()
方法名字操作
dict.clear()
刪除字典中所有元素
dict.copy()
返回字典(淺複製)的乙個副本
dict.fromkeysc(seq,val=none)
建立並返回乙個新字典,以seq 中的元素做該字典的鍵,val 做該字典中所有鍵對應的初始值(如果不提供此值,則預設為none)
dict.get(key,default=none)
對字典dict 中的鍵key,返回它對應的值value,如果字典中不存在此鍵,則返回default 的值(注意,引數default 的預設值為none)
dict.has_key(key)
如果鍵(key)在字典中存在,返回true,否則返回false. 在python2.2版本引入in 和not in 後,此方法幾乎已廢棄不用了,但仍提供乙個 可工作的介面。
dict.items()
返回乙個包含字典中(鍵, 值)對元組的列表
dict.keys()
返回乙個包含字典中鍵的列表
dict.values()
返回乙個包含字典中所有值的列表
dict.iter()
方法iteritems(), iterkeys(), itervalues()與它們對應的非迭代方法一樣,不同的是它們返回乙個迭代子,而不是乙個列表。
dict.pop(key[, default])
和方法get()相似,如果字典中key 鍵存在,刪除並返回dict[key],如果key 鍵不存在,且沒有給出default 的值,引發keyerror 異常。
dict.setdefault(key,default=none)
和方法set()相似,如果字典中不存在key 鍵,由dict[key]=default 為它賦值。
dict.setdefault(key,default=none)
和方法set()相似,如果字典中不存在key 鍵,由dict[key]=default 為它賦值。
Python學習筆記 1 1 2 認識Python
一.課程目標 二.詳情解讀 1.初識pythonpython語言是一種高階程式語言,它於1991年由吉多.範羅蘇姆 guido van rossum 發明。目前主要應用於web開發 gui開發 網路爬蟲 資料科學 人工智慧等領域。python官方 python語言也是一種多正規化程式語言,即物件導向...
python演算法題 鍊錶反轉詳解 python
鍊錶的反轉是乙個很常見 很基礎的資料結構題,輸入乙個單向鍊錶,輸出逆序反轉後的鍊錶,如圖 上面的鍊錶轉換成下面的鍊錶。實現鍊錶反轉有兩種方式,一種是迴圈迭代,另外一種方式是遞迴。第一種方式 循壞迭代 循壞迭代演算法需要三個臨時變數 pre head next,臨界條件是鍊錶為none或者鍊錶就只有乙...
python學習方法 十二種學習Python的方法
python學習方法 python是地球上最流行的程式語言之一。它被世界各地的開發商和製造商所接受。大多數linux和macos計算機都預裝了python版本,現在,即使是少數windows計算機 商也正在安裝python。也許您參加聚會遲到了,您想學習但不知道該去 這12個資源將幫助您入門,並逐步...