1. 程式人生 > >python字典建構函式dict(mapping)解析

python字典建構函式dict(mapping)解析

Python字典的建構函式有三個,dict()、dict(**args)、dict(mapping),其中第一個、第二個建構函式比較好理解也比較容易使用,

而dict(mapping)這個建構函式的使用比較難理解。

1 dict()建構函式可以返回一個空的字典

In [7]: d = dict()

In [8]: print d
{}

In [9]: 

2 dict(**arg)建構函式,傳入引數用賦值表示式,可多個賦值表示式,用逗號間隔即可。
In [9]: d = dict(a = 12, b = 13, c = 15)

In [10]: print d
{'a': 12, 'c': 15, 'b': 13}

In [11]: 

3 dict(mapping)構造python字典建構函式,怎麼傳入這個mapping引數呢?Python下的mapping到底是什麼呢?

看下邊這個例子。

def fmap(a, b): 
        return (a, b)
lik = range(1, 9) 
liv = list("abcdefgh")
print map(fmap, lik, liv) 

執行結果如下
[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e'), (6, 'f'), (7, 'g'), (8, 'h')]

       map函式的作用是:每次從可迭代物件(這裡是列表lik和liv)取出一個元素值,經過fmap自定義函式的處理後作為新的(返回)列表的元素,故這個map函式的操作方式很像列表解析的概念。

       理解了map函式後,便可將返回值作為dict的傳入引數了,從而得到一個字典。

def fmap(a, b):
        return (a, b)
lik = range(1, 11)
liv = list("abcdefghij")
lim = map(fmap, lik, liv)
d = dict(lim)
print d

      執行結果如下所示:
{1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e', 6: 'f', 7: 'g', 8: 'h', 9: 'i', 10: 'j'}


以上通過map函式實現的方式,Python提供了另一個函式zip,也可構造出一個mapping物件,程式碼如下所示:

In [77]: k = list("abcdefghij")
In [78]: print k
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
In [79]: v = range(11, 21)
In [80]: print v
[11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
In [81]: m = zip(k,v)
In [82]: print m
[('a', 11), ('b', 12), ('c', 13), ('d', 14), ('e', 15), ('f', 16), ('g', 17), ('h', 18), ('i', 19), ('j', 20)]
In [83]: d = dict(m)
In [84]: print d
{'a': 11, 'c': 13, 'b': 12, 'e': 15, 'd': 14, 'g': 17, 'f': 16, 'i': 19, 'h': 18, 'j': 20}


相關推薦

python字典建構函式dict(mapping)解析

Python字典的建構函式有三個,dict()、dict(**args)、dict(mapping),其中第一個、第二個建構函式比較好理解也比較容易使用, 而dict(mapping)這個建構函式的使用比較難理解。 1 dict()建構函式可以返回一個空的字典 In [7

Python字典的fromkeys方法“疑惑”解析

       今天寫python程式用到了字典中的fromkeys方法初始化字典的值為空列表,然後使用append方法,結果讓我大為詫異,最後使用傳統的方法初始化即{Key1:[],Key2:[]},然後再使用append得到正確結果,最後發現最本質的原因是初始化使用的值地址

python字典函式

字典 一、定義 d=dict(a=2,b='hello') ##直接定義賦值 d={}.fromkeys() ##採用fromkeys函式定義 列印模組pprint,使輸出更美觀 # import pprint ##匯入p

C++和python混合程式設計之在python建構函式中傳參方法

一、說明:C++專案中用到python相關的知識,這兩天研究了一下C++與python的混合程式設計,網上有很多這方面的介紹,但是怎麼使用python類的建構函式中傳參的介紹卻沒有,這裡研究一下,分享出來。(C++和python相互呼叫的相關介面查詢https:

[Python] 字典推導 PEP 274 -- Dict Comprehensions

track data- org popu mil href 說明 gac mod 之前自己也遇到過一次,這段時間在群裏也遇到過幾次的一個問題 用python2.7寫的一段程序。裏面用到了字典推導式,可是server版本號是python2.6,無法執行。

Python標準庫:內置函數dict(mapping, **kwarg)

rom 宋體 class pan blog 映射類型 sni roman art 本函數是從一個映射函數對象構造一個新字典。與dict(**kwarg)函數不一樣的地方是參數輸入是一個映射類型的函數對象,比方zip函數、map函數。樣例:#dict() #以鍵對方式構造

python Dictpython 字典操作

div 調用 clear 時報 bsp 找到 ict strong 數字 python字典 是一個無序、以鍵值對存儲的數據類型,數據關聯性強、唯一一個映射數據類型。鍵:必須是可哈希(不可變的數據類型:字符串、數字、元組、bool)值,並且是唯一的 None: none 是一

Python 字典 dict{}

nal items cname python 返回 fromkeys 直接 每次 每一個 dict{key:value} 映射類型 fromkeys(seq[, value]) 創建新字典,鍵seq對應的值value。每次使用創建新的字典 使用items()

python字典dict.get()和dict.setdefault()的異同點

def clas 即使 實例 字典 default 增加 存在 none 相同點: 兩者是參數相同:dict.get(key, default=None), dict.setdefault(key, default=None) 如果指定的鍵不存在時,兩者都返回默認值,默認

python 字典dict和列表list的讀取速度問題, range合並

span {} iteration copy size 情況 rec class 異常 python 字典和列表的讀取速度問題 最近在進行基因組數據處理的時候,需要讀取較大數據(2.7G)存入字典中,然後對被處理數據進行字典key值的匹配,在被處理文件中每次讀取一行

'dict_values' object does not support indexing, Python字典dict中由value查key

ima 通過 pre rap error mod returns RR rds Python字典dict中由value查key 眾所周知,字典dict最大的好處就是查找或插入的速度極快,並且不想列表list一樣,隨著key的增加越來越復雜。但是dict需要占用較大的

Python字典dict

變量的數據類型 存儲 lse 是否 err 必須 score 順序 tro dict Python內置了字典:dict的支持,dict全稱dictionary,在其他語言中也稱為map,使用鍵-值(key-value)存儲,具有極快的查找速度。Python中的唯一一種映

Python字典dict)與json數據格式的區別和聯系

格式 數據格式 元組 ring 字符 ict 調用 json模塊 png 在學習Python的時候,我們學習到,Python3 的標準數據類型有:   數字(Number)   字符串(String)   列表(List)   元組(Tumple)   集合(Set)   

python 字典dict 操作方法

dict()的操作方法 巢狀 巢狀在list中也存在,就是元素是list,在dict中,也有類似的樣式: >>> a_list = [[1,2,3],[4,5],[6,7]] >>> a_list[1][1] 5 >>>

PYTHON自動化Day6-函式多個返回值和匿名函式、列表生成式,三元運算子,os模組,sys模組,時間模組,字典排序,資料庫操作,加密(md5)

一.函式多個返回值和匿名函式 #函式返回多個值,用一個變數接收 def say(): num1=1 num2=2 num3=3 return num1,num2,num3 res=say() print(res) #打印出來是元組。 函式如果返回多個值的話,會把返回的

python的sorted函式字典按value進行排序

場景:詞頻統計時候,我們往往要對頻率進行排序 sorted(iterable,key,reverse),sorted一共有iterable,key,reverse這三個引數。其中iterable表示可以迭代的物件,例如可以是dict.items()、dict.keys()等,key是一個函式,用來選取參與比

python學習筆記】python字典(dict)

1、字典dict的建立 Python內建了字典:dict的支援,dict全稱dictionary,在其他語言中也稱為map,使用鍵-值(key-value)儲存,具有極快的查詢速度。注意字典內各個部分是沒有順序的區別的; 其java的map是一樣的,屬於key:value模式,一個簡單的

python 002-python基礎列表、字典函式的使用

列表的使用 names=["張三"]; print(names) 新增列表的值 尾部新增 names.append("李四") print(names) 新增列表的值 指定位置新增 names.insert(1,"王五"); print(names) 刪除列表的

Python字典中取值函式

在Python中當字典的值是函式時,如果這樣寫fou = {'a':aa(),'b'=bb(),'c':cc()}fou['a']這時函式會全部被執行,其實關鍵在後面的括號,經過多次嘗試把字典裡括號去掉函式是沒有立刻執行的也就是沒有返回函式結果,可去掉字典裡函式的括號打印出fou['a']得到的結果是一個物件

少說話多寫程式碼之Python學習046——類的成員(建構函式

建構函式是一個類裡比較特殊的函式,一般即時不寫建構函式,類也會預設有一個預設建構函式,比如像下面這樣的, __init__ 其實是一個預設建構函式。   class Book:     bookName='書名'     def __init