日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python中的字典dict

發布時間:2024/7/23 python 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python中的字典dict 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

字典是python中唯一的內置映射類型,其中的值不按順序排列,而是存儲在鍵下。鍵不可修改且不能重復的,所以其可能是數字、字符串或元組,而不可能是list。字典中鍵-值對被稱為項(item),其語法如下:

{"Alice": 12, "Beth": 11, "Danny": 14}

1 函數dict

>>> items = [('name', 'Alice'), ('age', 12)] >>> d = dict(items) >>> d {'name': 'Alice', 'age': 12} >>> d = dict(name='Beth', age=11) >>> d {'name': 'Beth', 'age': 11}

2 基本操作

len(d):返回字典d中的(鍵值對數)項數。

d[k]:返回與鍵k相關聯的值。

d[k] = v:將v的值關聯到鍵k。

del d[k]:刪除鍵為k的項。

k in d:檢查字典d是否包含鍵為k的項。

# 一個簡單的數據庫 # 一個將人名用作鍵的字典。每個人都用一個字典表示。 # 字典包含鍵‘phone’和‘addr’,它們分別與電話號碼和地址相關聯 people = {"Alice": {"phone": "2341","addr": "Foo drive 23"},"Beth": {"phone": "9102","addr": "Bar street 42"},"Cecil": {"phone": "3158","addr": "Baz avenue 90"} }# 電話號碼和地址的描述性標簽,供打印輸出使用 labels = {"phone": "phone number","addr": "address" }name = input("Name:")# 要查找電話號碼還是地址? request = input("Phone number (p) or address (a)? ")# 使用正確的鍵: if request == "p":key = "phone"if request == "a":key = "addr"# 僅當名字是字典包含的鍵時才打印信息 if name in people:print("{}'s {} is {}".format(name, labels[key], people[name][key]))

運行結果:

Name:Beth Phone number (p) or address (a)? p Beth's phone number is 9102

3 字典方法

? ? 3.1 clear

清除所有的字典項,沒有返回值。

d = {} d["name"] = "Gumby" d["age"] = 42 print(d) d.clear() print(d) {'name': 'Gumby', 'age': 42} {}

? ? 3.2 copy

返回一個新字典,這個方法是淺復制。當替換副本的值時,原件不受影響;然而,如果修改副本中的值,原件也會改變。因為原件指向的也是被修改的值。

# 淺復制 x = {"username": "admin", "machines": ["foo", "bar", "baz"]} y = x.copy() y["username"] = "mlh" y["machines"].remove("bar") print("y:", y) print("x:", x)

?運行結果:

y: {'username': 'mlh', 'machines': ['foo', 'baz']} x: {'username': 'admin', 'machines': ['foo', 'baz']}

?為解決這個問題,可以使用模塊copy中的deepcopy實現深復制,將同時復制值及其包含的所有值。

# 深復制 from copy import deepcopy d = {} d["names"] = ["Alfred", "Bertrand"] c = d.copy() dc = deepcopy(d) d["names"].append("Clive") print("c:", c) print("dc:", dc)

?運行結果:

c: {'names': ['Alfred', 'Bertrand', 'Clive']} dc: {'names': ['Alfred', 'Bertrand']}

? ? 3.3 fromkeys

創建一個新字典,其中包含指定的鍵,且默認每個鍵對應的值都是None。

d = dict.fromkeys(["name", "age"]) print(d) d = dict.fromkeys(["name", "age"], "(unknown)") print(d)

運行結果:

{'name': None, 'age': None} {'name': '(unknown)', 'age': '(unknown)'}

? ? 3.4 get

通常,使用[鍵]的方式訪問字典中沒有的項,將會引發錯誤。而用get方法來訪問不存在的鍵時,不會引發異常,而是返回None,若指定默認值,這樣將返回指定的默認值而不是None。

x = {"username": "admin", "machines": ["foo", "bar", "baz"]} print(x.get("username", "N/A")) print(x.get("addr")) print(x.get("addr", "N/A"))

運行結果:

admin None N/A

? ? 3.5 items

返回一個包含所有字典項的列表,其中每個元素都為(key, value)的形式。該列表屬于特殊類型字典視圖,這只是底層字典的反映,而不是復制。

d = {"title": "Python Web Site", "url": "http://www.python.org", "spam": 0} it = d.items() print(it) print(len(it)) print(("spam", 0) in it) d["spam"] = 1 print(("spam", 0) in it)

運行結果:

dict_items([('title', 'Python Web Site'), ('url', 'http://www.python.org'), ('spam', 0)]) 3 True False

? ? 3.6 keys

返回一個字典試圖,其中包含指定字典中的鍵。

>>> d = {"title": "Python Web Site", "url": "http://www.python.org", "spam": 0} >>> d.keys() dict_keys(['title', 'url', 'spam'])

? ? 3.7 pop

獲取與指定鍵相關聯的值,并將該鍵-值對從字典中刪除。

>>> d = {"title": "Python Web Site", "url": "http://www.python.org", "spam": 0} >>> d {'title': 'Python Web Site', 'url': 'http://www.python.org', 'spam': 0} >>> d.pop("title") Python Web Site >>> d {'url': 'http://www.python.org', 'spam': 0}

? ? ?3.8 popitem

隨機的彈出一個字典項,因為字典項的順序是不確定的,沒有“最后一個元素”的概念。

>>> d = {"title": "Python Web Site", "url": "http://www.python.org", "spam": 0} >>> d {'title': 'Python Web Site', 'url': 'http://www.python.org', 'spam': 0} >>> d.popitem() ('spam', 0) >>> d {'title': 'Python Web Site', 'url': 'http://www.python.org'}

? ? 3.9 updata

使用一個字典中的項來更新另一個字典。

>>> d = {"title": "Python Web Site", "url": "http://www.python.org", "spam": 0} >>> d {'title': 'Python Web Site', 'url': 'http://www.python.org', 'spam': 0} >>> x = {"title": "Python Language Website"} >>> d.update(x) >>> d {'title': 'Python Language Website', 'url': 'http://www.python.org', 'spam': 0}

? ? 3.10 values

返回一個由字典中的值組成的字典試圖。

>>> x = {"username": "admin", "machines": ["foo", "bar", "baz"]} >>> x.values() dict_values(['admin', ['foo', 'bar', 'baz']])

?

總結

以上是生活随笔為你收集整理的Python中的字典dict的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。