python學習筆記--字典dict

# 字典 映射類型 由鍵值對構成 用{}表示 類似於js中的對象
# 列表有位置關係 是有序的 字典是無序的 鍵是可以哈希的 值可以是任意類型的數據 鍵一定是唯一的 鍵是不可修改的類型
# id(a) 找到a這個對象的內存地址
# 基本數據類型中,不可變類型有整形,字符串,元組;可變類型有列表,字典

# 創建字典
# dic = {'name': 'Tengxi', 'age': 18, 'hobby': 'football'} # 常用
# dic1 = dict((('name', 'Tengxi'), ('gender', 'male')))
# print(dic1['gender'])
# new_dict = dict.fromkeys(['host', 'master', 'owner'], None) # 生成帶統一默認值的字典
# new_dict['host'] = 'Bigger'
# print(new_dict)

# 字典操作

# 增
dict1 = {'name': 'Tengxi'}
dict1['age'] = 19 # 類似js中對象增加實例的方法,沒有的鍵是新增,有的鍵是修改

# setdefault 有返回值
dict1.setdefault('age', 45) # 字典中有這個鍵,不做任何改動,會返回該鍵的真實返回值
dict1.setdefault('gender', 'male') # 字典中沒有這個鍵,實現新增鍵的操作
# print(dict1)
# print(dict1.keys())

# 查 通過鍵名找值
# print(type(dict1.keys())) # 找字典中所有的鍵,返回值是dict_keys的數據類型
# print(list(dict1.keys())) # 將dict_keys類型的轉成列表類型,方便操作
# print(type(dict1.values())) # 找字典中所有的鍵,返回值是dict_keys的數據類型
# print(dict1.items()) # 找字典中所有鍵值對

# 改
# dict1['name'] = 'Alex'
# print(dict1)
# update 用新字典內容代替舊字典的內容,如果有重複的,會舊的覆蓋新的,沒有重複的,會在update前的字典中增加新的鍵值對,改變的是update前面的字典
# 類似列表中的extend
dict2 = {'name': 'delicious food', 'Singer': 'Professor He'}
# dict1.update(dict2)
# print(dict1)
# print(dict2)

# 刪
# del 刪鍵值對(指定的鍵值對)
# del dict2['name']
# print(dict2)

# clear 清空字典
# dict2.clear()
# print(dict2)

#pop 通過鍵刪除 有返回值,返回指定刪除的鍵對應的值
# test = dict2.pop('singer')
# print(test)
# print(dict2)

# popitem 隨機刪除一組鍵值對(因爲字典是無序的,所以是隨機刪)
# tried = dict2.popitem()
# print(tried, dict2)

# 排序 sorted 依據鍵名排序, 排序的結果是列表類型值
# print(sorted(dict2))
# print(sorted(dict2.values())) # 依據值排序
# print(sorted(dict2.items())) # 依然是依據鍵名排序

#字典遍歷
# new_dict = {'name': 'Tengxi', 'gender': 'male', 'age': 28}
# for i in new_dict: # 推薦方法
#     print(i) # 這裏遍歷出來的是鍵
#     print(new_dict[i]) # 這裏遍歷出來的是值

# for i, v in new_dict.items(): # 獲取items的時候有個轉換的過程,效率低
#     print(i, v) # 兩個循環變量輸出的普通字符

# for i in new_dict.items():
#     print(i) # 一個循環變量得到的是元組

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章