Python-常用數據結構(字典)-Dict

1.創建字典

dict1 = {'k1': 'z1', 'k2': 'z2', 'k3': 'z3'}
print('dict1的值:{}'.format(dict1))
# 輸出結果  dict1的值:{'k1': 'z1', 'k2': 'z2', 'k3': 'z3'}

2.訪問字典元素

dict1 = {'k1': 'z1', 'k2': 'z2', 'k3': 'z3'}
print('通過key訪問value方法一,{}'.format(dict1['k1']))
# 輸出結果  通過key訪問value方法一,z1
print('通過key訪問value方法二,{}'.format(dict1.get('k2')))
# 輸出結果  通過key訪問value方法二,z2

3.操作字典

# 通過key增加/修改元素
dict1 = {'k1': 'z1', 'k2': 'z2', 'k3': 'z3'}
dict1['k1'] = 1     # 如有字典中有對應的key則更新
dict1['k4'] = 'z4'  # 如字典中沒有對應的key則新增
print('dict1的值是:{}'.format(dict1))
# 輸出結果  dict1的值是:{'k1': 1, 'k2': 'z2', 'k3': 'z3', 'k4': 'z4'}

# 同過key刪除元素
dict1 = {'k1': 'z1', 'k2': 'z2', 'k3': 'z3'}
dict1.pop('k3')
print('刪除k3後的dict1值是:{}'.format(dict1))
# 輸出結果  刪除k3後的dict1值是:{'k1': 'z1', 'k2': 'z2'}

4.遍歷字典

# 只獲取key值
dict1 = {'k1': 'z1', 'k2': 'z2', 'k3': 'z3'}
for key in dict1:
    value = dict1[key]
    print('key值是:{},value值是:{}'.format(key, value))
    # 輸出結果 分三次輸出  key值是:k1,value值是:z1   key值是:k2,value值是:z2  key值是:k3,value值是:z3
# 只獲取值
for value in dict1.values():
    print(value)
    # 輸出結果  分三次輸出 z1  z2  z3
# 獲取key和value
for key, value in dict1.items():
    print('key是:{},value是:{}'.format(key, value))
    # 輸出結果  分三次輸出  key是:k1,value是:z1  key是:k2,value是:z2  key是:k3,value是:z3

# 先獲取鍵值對的下標,再通過key獲取value
for index, key in enumerate(dict1):
    value = dict1[key]
    print('下標:{},key:{},value:{}'.format(index, key, value))
    # 輸出結果  分三次輸出  下標:0,key:k1,value:z1  下標:1,key:k2,value:z2  下標:2,key:k3,value:z3

5.小例子:統計列表中元素重複出現的次數

list1 = [1, 1, 2, 2, '1', '1', 3, 3, '3', '3', 1, 1]
dict1 = {}
# 遍歷列表
for item in list1:
    # 判斷 list1重複元素作爲key的,鍵值對是否在dict1中 ,如果在則加1,如果不在則新建一個存放在dict1中
    if item in dict1:
        dict1[item] += 1
    else:
        dict1[item] = 1
print('dict1的值是:{}'.format(dict1))
# 輸出結果  dict1的值是:{1: 4, 2: 2, '1': 2, 3: 2, '3': 2}  dict1的key是列表list的元素,value是出現的次數
bool類型也能作爲字典的key值,需要注意的時候bool類型的True和False分別對應0和1,因爲字典key值的唯一性,
True和1 不能同時出現  False不能和0同時出現

以上僅是我的個人理解,希望大神能指出其中的理解錯誤之處,像要了解更多可以查看 python中文文檔

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