国产探花免费观看_亚洲丰满少妇自慰呻吟_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創建空列表的字典方法請查看下面的相關鏈接

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 图木舒克市| 香港 | 南宁市| 讷河市| 沅江市| 肃北| 邹平县| 廉江市| 平南县| 扬中市| 永登县| 荥阳市| 东乡县| 留坝县| 连江县| 临夏县| 郓城县| 威宁| 许昌市| 抚州市| 建湖县| 建宁县| 福州市| 咸宁市| 公安县| 喀喇沁旗| 馆陶县| 南宁市| 新龙县| 合作市| 乐东| 焦作市| 陆河县| 卢氏县| 广宁县| 广汉市| 武穴市| 双峰县| 巴南区| 鹤岗市| 张家口市|