亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python字典一些常見的魔法方法以及遇到的面試題有哪些

發布時間:2021-10-21 15:13:42 來源:億速云 閱讀:118 作者:柒染 欄目:大數據

本篇文章給大家分享的是有關python字典一些常見的魔法方法以及遇到的面試題有哪些,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

一、字典介紹

dict 類型不但在各種程序里廣泛使用,它也是 Python 語言的基石。模塊的命名空間、實例的屬性和函數的關鍵字參數中都可以看到字典的身影。跟它有關的內置函數都在__builtins__.__dict__模塊中。正是因為字典至關重要,Python 對它的實現做了高度優化,而散列表則是字典類型性能出眾的根本原因。

常規字典相比,OrderDict 對象內部維護著一個根據鍵插入順序排序的雙向鏈表,新插入的元素會被放到鏈表的尾部,從而實現記住插入順序的功能。不過,python3.7 版本之后,內置字典已經實現了一樣的能力,并在 python3.8 版本提供了 reversed() 方法,因此,OrderDict 已經沒什么存在的必要了.

二、常見的映射方法:

1.檢查 k 是否在字典 d 中

d.__contains__(k)

2.讓字典 d 能用 d[k] 的形式返回鍵 k 對應的值

d.__getitem__(k)

3.當 __getitem__ 找不到對應鍵的時候,這個方法會被調用

d.__missing__(k)

4.獲取字典的某個屬性值

d.__getattribute__(*args, **kwargs)

5.若字典里有鍵k,則把它對應的值設置為 default,然后返回這個值;若無,則讓 d[k] = default,然后返回default

d.setdefault(k,[default])

三、遇到的面試題

1.字典用屬性訪問方式訪問元素,要使用dict[key]的方式獲取value,如何實現通過”."的形式來訪問字典元素?

class mydict(dict):
    def __getattr__(self, item):          try:               return self[item]          except:               raise AttributeError(item)               myd = mydict(a=1, b=2)print(myd.a)print(myd.c)

2.有一個字典,d1 = {“a”: (1,2,3), “b”: (4,6,6), “c”: (2,5,8)},value類型是個tuple,根據value值的第一個下標元素對字典進行倒序排序。d1排序后的結果是 [(‘b’, (4, 6, 6)), (‘c’, (2, 5, 8)), (‘a’, (1, 2, 3))]

d1 = {"a": (1,2,3), "b": (4,6,6), "c": (2,5,8)}res = sorted(d1.items(), key=lambda x:x[1][0], reverse=True)print(res)

3.有個列表里面包含多個字典,例如:

students = [ {"name": "Stanley", "age": 22, "score": 92},   {"name": "Peter", "age": 19, "score": 99},     {"name": "Well", "age": 23, "score": 82},    {"name": "Bob", "age": 20, "score": 88},  {"name": "Lily", "age": 22, "score": 95}  ]

對上面的數據進行排序,根據先按分數再按年齡進行倒序排序。

from operator import itemgetterstudents_by_score_age = sorted(students, key=itemgetter("score", "age"), reverse=True)

以上就是python字典一些常見的魔法方法以及遇到的面試題有哪些,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

潜江市| 安溪县| 阜新市| 嵊州市| 友谊县| 新沂市| 肃北| 武清区| 论坛| 富顺县| 樟树市| 北京市| 彭州市| 阜阳市| 揭西县| 娱乐| 青州市| 云林县| 龙门县| 商南县| 德令哈市| 成安县| 竹山县| 广元市| 南川市| 宾川县| 惠东县| 凤凰县| 响水县| 木兰县| 金昌市| 大城县| 光山县| 兖州市| 北辰区| 双柏县| 蚌埠市| 龙陵县| 开封市| 伊吾县| 九台市|