python D5 字典
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                python D5 字典
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                
                            
                            
                            # 基本數據類型 :dict
# 1、字典的基本介紹
# 字典是python中唯一的一個映射類型,他是以{}括起來的鍵值對組成,在dict中key是
# 唯一的。在保存的時候,根據key來計算出一個內存地址,然后將key-value保存在這個地址中。
# 這種算法成為hash算法,所以,切記,在dict存儲的key-value中的key必須是可hash的。
# (key是可以hash的,可以改變不是可哈希的。)
# 已知的可哈希(不可變)的數據類型:str(字符串)、int(數字)、tuple(元組)、bool(布爾)
# 不可哈希的(可變的):list(列表)、dict(字典)、set(集合)
# 語法:{"key1":"name1","key2":"name2"...}
# 注意:dict中key值需為可哈希的(不可變),value沒有要求、可以保存任意類型的數據
# dict中數據保存是無需的不連續的,所以不能用切片工作,他只能通過key來獲取dict中的數據
# 二、字典增刪改查和其他操作
# 1、增加:
# d={"name": "張南北", "age":"16"}
# d["性別"] = "男"
# d["name"] = "Daniel" # 如果字典中以有key增加至會覆蓋原來的value
# print(d)
# d = {"name": "張南北", "age": "16"}
# d.setdefault("gender")
# print(d) # {'name': '張南北', 'age': '16', 'gender': None}
# 用setdefault添加時當只給出key是自動添加空值(None)
# d.setdefault("gender", "男")
# print(d)
# d.setdefault("name", "Jack")
# print(d) # {'name': '張南北', 'age': '16'}
# 當使用d.setdefault 添加時dict中原本有相同的key值則不會添加
# d1 = d.setdefault("name", "Jack")
# print(d, d1) #{'name': '張南北', 'age': '16'} 張南北
# d.setdefault("x","y") 增加時如果原dict中有對應的key則print(d.setdefault())為原來dict中key對應的value
# 2、刪除:pop()、popitem()、clear()、del dic[]
# pop(key):key對應的鍵值刪除,當key值在原字典中找不到則會報錯
# d = {"name": "張南北", "age": "16"}
# d.pop("name")
# print(d)
# d.pop("gender") #KeyError: 'gender'
# popitem:隨機刪除字典中一對鍵值(字典里面的元素排序是無序(最底層的key哈希值隨機排列),popitem()刪除的是無序的,但在python3.5刪除看著是最后一個,只是計算機在中間層做的處理)
# d = {"name": "張南北", "age": "16", "gender": "men"}
# d.popitem()
# print(d)
# clear:清空字典但字典最底層存儲碼還在
# d = {"name": "張南北", "age": "16", "gender": "men"}
# d.clear()
# print(d) #{}
# del d:刪除 里面所有都刪除(比clear更徹底)
# del d
# print(d) # 報錯 NameError: name 'd' is not defined
# del d["name"]
# print(d)
# 3、修改
# d = {"name": "張南北", "age": "16", "gender": "men"}
# d["age"] = "18"
# print(d) # 相當于新增(覆蓋)
# d2 = {"hobby": "play_game", "name": "Deniel"}
# d.update(d2)
# print(d) # {'name': 'Deniel', 'age': '16', 'gender': 'men', 'hobby': 'play_game'}
# 把d2中的內容更新到d中. 如果key重名. 則修改替換. 如果不存在key, 則新增.
# 4、查詢:查詢一般用key來查找具體的數據
# 有兩種方式查找:d["xxx"]、d.get("xxx")
# d = {"name": "張南北", "age": "16", "gender": "men"}
# print(d["name"])
# print(d["hobby"]) #KeyError: 'hobby'
# 當用此種方式查找時、字典中沒有對應的key則會報錯
# print(d.get("age"))
# print(d.get("hobby")) # None
# 此種方法查找當key時,字典中沒有回輸出None
# 5、其他操作:
# keys、values、items
# keys:找出字典中所有key的值以類似列表的形式保存可以迭代
# d = {"name": "張南北", "age": "16", "gender": "men"}
# print(d.keys()) # dict_keys(['name', 'age', 'gender']) 類似列表,但是列表可以迭代
# for c in d.keys():
# print(c)
# values:找出字典中所有value的值以類似列表的形式保存可以迭代
# items:找出字典中所有的鍵對
# print(d.items()) # dict_items([('name', '張南北'), ('age', '16'), ('gender', 'men')])
# for key, value in d.items():
# print(key, value)
# 輸出結果:name 張南北
# age 16
# gender men # for c in d:
# print(c)
# 結果:
# name
# age
# gender
如果直接循環打印字典輸出結果只有key
# 6、元組的解包
# a, b = 1, 2
# print(a, b) #1 2
# 將a,b的值互換
# b, a = 1, 2
# print(a, b)
# 三、字典的嵌套
# 字典的嵌套 :一層層去找就ok
# dic1 = {
# "name": "汪峰",
# "age": 18,
# "wife": {
# "name": '章?怡',
# "age": 28
# },
# "children": ['第?個?孩?', '第?個?孩?'],
# "desc": '峰哥不會告我吧. 沒關系. 我想上頭條的'
# }
# print(dic1["name"]) # 這樣查找當嵌套字典中有多個重復的key輸出第一層的key對應value值
# print(dic1.get("wife").get("name")) # 章?怡
# 優選第二種方法
                        
                        
                        # 1、字典的基本介紹
# 字典是python中唯一的一個映射類型,他是以{}括起來的鍵值對組成,在dict中key是
# 唯一的。在保存的時候,根據key來計算出一個內存地址,然后將key-value保存在這個地址中。
# 這種算法成為hash算法,所以,切記,在dict存儲的key-value中的key必須是可hash的。
# (key是可以hash的,可以改變不是可哈希的。)
# 已知的可哈希(不可變)的數據類型:str(字符串)、int(數字)、tuple(元組)、bool(布爾)
# 不可哈希的(可變的):list(列表)、dict(字典)、set(集合)
# 語法:{"key1":"name1","key2":"name2"...}
# 注意:dict中key值需為可哈希的(不可變),value沒有要求、可以保存任意類型的數據
# dict中數據保存是無需的不連續的,所以不能用切片工作,他只能通過key來獲取dict中的數據
# 二、字典增刪改查和其他操作
# 1、增加:
# d={"name": "張南北", "age":"16"}
# d["性別"] = "男"
# d["name"] = "Daniel" # 如果字典中以有key增加至會覆蓋原來的value
# print(d)
# d = {"name": "張南北", "age": "16"}
# d.setdefault("gender")
# print(d) # {'name': '張南北', 'age': '16', 'gender': None}
# 用setdefault添加時當只給出key是自動添加空值(None)
# d.setdefault("gender", "男")
# print(d)
# d.setdefault("name", "Jack")
# print(d) # {'name': '張南北', 'age': '16'}
# 當使用d.setdefault 添加時dict中原本有相同的key值則不會添加
# d1 = d.setdefault("name", "Jack")
# print(d, d1) #{'name': '張南北', 'age': '16'} 張南北
# d.setdefault("x","y") 增加時如果原dict中有對應的key則print(d.setdefault())為原來dict中key對應的value
# 2、刪除:pop()、popitem()、clear()、del dic[]
# pop(key):key對應的鍵值刪除,當key值在原字典中找不到則會報錯
# d = {"name": "張南北", "age": "16"}
# d.pop("name")
# print(d)
# d.pop("gender") #KeyError: 'gender'
# popitem:隨機刪除字典中一對鍵值(字典里面的元素排序是無序(最底層的key哈希值隨機排列),popitem()刪除的是無序的,但在python3.5刪除看著是最后一個,只是計算機在中間層做的處理)
# d = {"name": "張南北", "age": "16", "gender": "men"}
# d.popitem()
# print(d)
# clear:清空字典但字典最底層存儲碼還在
# d = {"name": "張南北", "age": "16", "gender": "men"}
# d.clear()
# print(d) #{}
# del d:刪除 里面所有都刪除(比clear更徹底)
# del d
# print(d) # 報錯 NameError: name 'd' is not defined
# del d["name"]
# print(d)
# 3、修改
# d = {"name": "張南北", "age": "16", "gender": "men"}
# d["age"] = "18"
# print(d) # 相當于新增(覆蓋)
# d2 = {"hobby": "play_game", "name": "Deniel"}
# d.update(d2)
# print(d) # {'name': 'Deniel', 'age': '16', 'gender': 'men', 'hobby': 'play_game'}
# 把d2中的內容更新到d中. 如果key重名. 則修改替換. 如果不存在key, 則新增.
# 4、查詢:查詢一般用key來查找具體的數據
# 有兩種方式查找:d["xxx"]、d.get("xxx")
# d = {"name": "張南北", "age": "16", "gender": "men"}
# print(d["name"])
# print(d["hobby"]) #KeyError: 'hobby'
# 當用此種方式查找時、字典中沒有對應的key則會報錯
# print(d.get("age"))
# print(d.get("hobby")) # None
# 此種方法查找當key時,字典中沒有回輸出None
# 5、其他操作:
# keys、values、items
# keys:找出字典中所有key的值以類似列表的形式保存可以迭代
# d = {"name": "張南北", "age": "16", "gender": "men"}
# print(d.keys()) # dict_keys(['name', 'age', 'gender']) 類似列表,但是列表可以迭代
# for c in d.keys():
# print(c)
# values:找出字典中所有value的值以類似列表的形式保存可以迭代
# items:找出字典中所有的鍵對
# print(d.items()) # dict_items([('name', '張南北'), ('age', '16'), ('gender', 'men')])
# for key, value in d.items():
# print(key, value)
# 輸出結果:name 張南北
# age 16
# gender men # for c in d:
# print(c)
# 結果:
# name
# age
# gender
如果直接循環打印字典輸出結果只有key
# 6、元組的解包
# a, b = 1, 2
# print(a, b) #1 2
# 將a,b的值互換
# b, a = 1, 2
# print(a, b)
# 三、字典的嵌套
# 字典的嵌套 :一層層去找就ok
# dic1 = {
# "name": "汪峰",
# "age": 18,
# "wife": {
# "name": '章?怡',
# "age": 28
# },
# "children": ['第?個?孩?', '第?個?孩?'],
# "desc": '峰哥不會告我吧. 沒關系. 我想上頭條的'
# }
# print(dic1["name"]) # 這樣查找當嵌套字典中有多個重復的key輸出第一層的key對應value值
# print(dic1.get("wife").get("name")) # 章?怡
# 優選第二種方法
轉載于:https://www.cnblogs.com/z520h123/p/9837436.html
總結
以上是生活随笔為你收集整理的python D5 字典的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 如何作缺陷分析
 - 下一篇: Linux系统下 Apache+PHP