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

歡迎訪問 生活随笔!

生活随笔

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

python

09.python常用数据类型—字典

發布時間:2024/1/8 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 09.python常用数据类型—字典 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

字典(dict)

字典也可以當做是個容器,在內部可以存放數據。相比較于元組和列表,字典的元素必須是 鍵值對。

注意:在Python3.6+字典就是有序了,之前的字典都是無序。

1. 字典定義

info = {"age":12, "status":True, "name":"11","hobby":['籃球','足球']}# 例如: "age":12 稱為一個鍵值對。 department_dict = { "IT部門":["11","22"], "銷售部":["張三","劉能","張揚"], "財務部":["ee"] } department_dict = { "qq":{"id":1,"gender":"男","email":"xx@live.com"}, "xx":{"id":1,"gender":"男","email":"xx@live.com"}, "cc":{"id":1,"gender":"男","email":"xx@live.com"}, "vv":{"id":1,"gender":"男","email":"xx@live.com"}, "ff":{"id":1,"gender":"男","email":"xx@live.com"}, "bb":{"id":1,"gender":"男","email":"xx@live.com"}, ...}

注意:字典的鍵有特殊要求,即:必須可哈希 。 目前為止學到的可哈希的類型:int/bool/str/tuple;不可哈希的類型:list/dict

# 合法 dic = {123: 456, True: 999, "id": 1, "name": 'sylar', "age": 18, "stu": ['帥 哥', '美?'], (1, 2, 3): '麻花藤'} print(dic[123]) print(dic[True]) print(dic['id']) print(dic['stu']) print(dic[(1, 2, 3)]) # 不合法 # dic = {[1, 2, 3]: '周杰倫'} # list是不可哈希的. 不能作為key # dic = {{1: 2}: "哈哈哈"} # dict是不可哈希的. 不能作為key # dic = {{1, 2, 3}: '呵呵呵'} # set是不可哈希的, 不能作為key

2 .常見方法

  • 所有的鍵

    info = {"age":12, "status":True, "name":"oo","email":"xx@live.com"} data = info.keys() # 獲取字典的所有的鍵,返回一個`高仿的`列表,存放的都是字典中的key。 print(data) # 輸出:dict_keys(['age', 'status', 'name', 'email']) info = {"age":12, "status":True, "name":"33","email":"xx@live.com"} for ele in info.keys():print(ele)

    注意:在Python2中 字典.keys()直接獲取到的是列表,而Python3中返回的是高仿列表,這個高仿的列表可以被循環顯示。

  • 所有的值

    info = {"age":12, "status":True, "name":"rr","email":"xx@live.com"} data = info.values() print(data) # 輸出:dict_values([12, True, 'wupeiqi', 'xx@live.com']) info = {"age":12, "status":True, "name":"tt","email":"xx@live.com"} for val in info.values():print(val) # 輸出:dict_values([12, True, 'wupeiqi', 'xx@live.com'])

    注意:在Python2中 字典.values()直接獲取到的是列表,而Python3中返回的是高仿列表,這個高仿的列表可以被循環顯示。

  • 所有的鍵值

    info = {"age":12, "status":True, "name":"22","email":"xx@live.com"} data = info.items() print(data) # 輸出 dict_items([('age', 12), ('status', True), ('name', 'wupeiqi'), ('email', 'xx@live.com')]) for item in info.items():print(item) # item是一個元組 (鍵,值) for key,value in info.items():print(key,value) # key代表鍵,value代表值,將兼職從元組中直接拆分出來了。
  • 更新字典鍵值對

    info = {"age":12, "status":True} info.update({"age":14,"name":"yy"}) # info中沒有的鍵直接添加;有的鍵則更新值print(info) # 輸出:{"age":14, "status":True,"name":"武沛齊"}
  • 移除字典的鍵值對

    info = {"age":12, "status":True,"name":"uu"} data = info.pop("age") print(info) # {"age":12,"name":"武沛齊"}print(data) # 12
  • 根據鍵獲取值

    info = {"age":12, "status":True,"name":"ii"} data = info.get("name",None) # 根據name為鍵去info字典中獲取對應的值,如果不存在則返回None,存在則返回值。 print(data) # 輸出:武沛齊
  • 6.3 轉換

    由于字典的每一個元素是鍵值對,所以想要轉換為字典的必須要有個特定的格式才能轉換成功

    v = dict([("k1","v1"),("k2","v2")]) print(v) # 輸出:{'k2': 'v2', 'k1': 'v1'} v = dict([ ["k1","v1"], ["k2","v2"] ]) print(v) # 輸出:{'k2': 'v2', 'k1': 'v1'}

    子元素必須包含兩個元素,從而將值對應給字典的鍵、值。

    6.4 其他

  • 取長度

    info = {"age":12, "status":True,"name":"kk"} data = len(info) print(data) # 輸出:3
  • 索引(鍵)
    字典不同于元組和列表,字典的索引是鍵,而列表和元組則是 0、1、2等數值 。

    info = {"age":12, "status":True,"name":"adf"} print(info["age"]) # 輸出:12 print(info["name"]) # 輸出:adf print(info["status"]) # 輸出:True print(info["xxxx"]) # 報錯,通過鍵為索引去獲取之后時,鍵不存在會報錯(以后項目開發時建議使用get方法根據鍵去獲取值)

    提示:字典根據鍵的查找速度非常快,遠遠大于列表或元組通過索引查找的速度,因為字典內部是基于hash存儲。

  • 根據鍵 修改值 和 添加值 和 刪除鍵值對
    上述示例通過鍵可以找到字典中的值,通過鍵也可以對字典進行添加和更新操作

    info = {"age":12, "status":True,"name":"ds"} info["gender"] = "男" # gender鍵在字典中不存在,則自動在字典中新添加一個鍵值對 print(info) # 輸出: {"age":12, "status":True,"name":"ds","gender":"男"} info = {"age":12, "status":True,"name":"ee"} info["age"] = "18" # age鍵在info字典中已存在,則更新鍵對應的值 print(info) # 輸出: {"age":18, "status":True,"name":"ee"} info = {"age":12, "status":True,"name":"tt"} del info["age"] # 刪除info字典中鍵為age的那個鍵值對(鍵不存在則報錯) print(info) # 輸出: {"status":True,"name":"tt"}
  • for循環

    由于字典也屬于是容器,內部可以包含多個鍵值對,可以通過循環對其中的:鍵、值、鍵值進行循環;

    info = {"age":12, "status":True,"name":"yy"} for item in info.key(): print(item) info = {"age":12, "status":True,"name":"ii"} for item in info.values(): print(item) info = {"age":12, "status":True,"name":"uuu"} for key,value in info.items(): print(key,value)
  • 字典嵌套

    截止目前位置我們已學了:int/str/list/tuple/dict 五種常見數據類型,而其中list/tuple/dict類型中可以包含子元素,所以他們的內容就可以進行數據的嵌套。但在嵌套和對內部數據操作時要注意:

    元組子元素不能變 不可哈希的list、dict不能做字典的鍵 dic = {'name':'汪峰','age':48,'wife':[{'name':'國際章','age':38}],'children':['第一個熊孩子','第二個熊孩子']}"""1. 獲取汪峰的妻子名字d1 = dic['wife'][0]['name']print(d1)2. 獲取汪峰的孩子們d2 = dic['children']print(d2)3. 獲取汪峰的第一個孩子d3 = dic['children'][0]print(d3)4. 汪峰的媳婦姓名變更為 章子怡dic['wife'][0]['name] = "章子怡"print(dic)5. 汪峰再娶一任妻子dic['wife'].append({"name":"鐵錘","age":19})print(dic)6. 給汪峰添加一個愛好:吹牛逼dic['hobby'] = "吹牛逼"print(dic)7. 刪除汪峰的年齡del dic['age']或dic.pop('age')_print(dic)"""
  • 總結

    以上是生活随笔為你收集整理的09.python常用数据类型—字典的全部內容,希望文章能夠幫你解決所遇到的問題。

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