国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python創建空列表的字典2種方法詳解

2020-02-15 21:13:00
字體:
來源:轉載
供稿:網友

如果要在 Python 中創建鍵值是空列表的字典,有多種方法,但是各種方法之間是否由區別?需要作實驗驗證,并且分析產生的原因。本文針對兩種方法做了實驗和分析。

如果要在 Python 中創建一個鍵值都是列表的字典,類似下面這樣,該怎么做?

{1:[], 2:[], 3:[], 4:[]}

方法1,字典構造器

用 dict 構造器生成,構造(key,value)對

> key = [1, 2, 3, 4]> a = dict([(k,[]) for k in key])> a{1: [], 2: [], 3: [], 4: []}

方法2,使用 fromkeys()

用字典的方法fromkeys(key list, default value)

> key = [1, 2, 3, 4]> b = {}.fromkeys(key,[])> b{1: [], 2: [], 3: [], 4: []}

結果對比

這兩種方法生成的字典有沒有區別?檢驗一下:

> a[1].append(1)> a{1: [1], 2: [], 3: [], 4: []} # 僅影響對應的鍵值列表>> b[1].append(1)> b{1: [1], 2: [1], 3: [1], 4: [1]} # 所有鍵值列表都受影響

上面的結果中,發現使用 fromkeys() 方法生成的空列表,都增加了一個元素。似乎他們是同一個對象。

原因分析

從上面看出,用fromkeys( )方法生成的字典里的空列表其實是同一個對象。為什么會這樣?因為傳給fromkeys( )函數的參數”[]“是同一個對象,fromkeys( )把這一個對象的淺拷貝放在字典里了。

如果這個對象是 mutable 的,就會在后續的操作中出問題。如果創建字典的對象是mutable的,應該避免使用fromkeys( )

更多關于Python創建空列表的字典方法請查看下面的相關鏈接

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 儋州市| 宕昌县| 凤翔县| 乐都县| 岐山县| 孝义市| 桓台县| 崇文区| 麦盖提县| 项城市| 京山县| 阿坝| 仁化县| 龙海市| 获嘉县| 永嘉县| 兰西县| 台东县| 临安市| 靖安县| 巴林左旗| 荆州市| 定远县| 扶沟县| 沾化县| 易门县| 贵德县| 增城市| 钟山县| 嘉禾县| 绥宁县| 利辛县| 静海县| 景泰县| 上思县| 石景山区| 眉山市| 措美县| 裕民县| 元阳县| 通道|