日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Python交換字典鍵值對的四種方法實例_python

作者:枉費紅箋 ? 更新時間: 2023-01-01 編程語言

前言

在學習過程中發現有時候交換字典的鍵和值,會使得我們最后的輸出結果更加直觀明了,整理出以下四種交換方式(data是原字典,new_data 是交換后的字典)

一、當值唯一時

1. 使用zip進行交換

data= {'A':1, 'B':2, 'C':3}
new_data = dict(zip(data.values(), data.keys()))
print(new_data)
# 運行結果
# {1: 'A', 2: 'B', 3: 'C'}

2. 使用for循環遍歷交換

data= {'A':1, 'B':2, 'C':3}
new_data = {}
for key, val in data.items():
    new_data[val] = key
print(new_data)
# 運行結果
# {1: 'A', 2: 'B', 3: 'C'}

3. 使用dict.items()交換

new_data = dict([val, key] for key, val in data.items())
print(new_data)
# 運行結果
# {1: 'A', 2: 'B', 3: 'C'}

上述三種方式的前提條件是值唯一。如果data = {'A': 1, 'B': 2, 'C': 3, 'D': 3},最后輸出結果是{1: 'A', 2: 'B', 3: 'D'},C會被D代替。

二、當值不唯一時

如果值不唯一,可以使用下面這種方式,最后輸出結果是{1: ['A'], 2: ['B'], 3: ['C', 'D']}

from collections import defaultdict

def main():
    data = {'A': 1, 'B': 2, 'C': 3, 'D': 3}
    new_data = defaultdict(list)
    for key, val in data.items():
        new_data[val].append(key)
    print(new_data)
# 運行結果
# {1: ['A'], 2: ['B'], 3: ['C', 'D']}

Python中通過Key訪問字典,當Key不存在時,會引發‘KeyError’異常。為避免這種情況的發生,可以使用collections類中的defaultdict()方法來為字典提供默認值。該函數返回一個類似字典的對象。defaultdict是Python內建字典類(dict)的一個子類。

dict = defaultdict(factory_function)
# factory_function可以是list、set、str等等,作用是當key不存在時,返回的是工廠函數的默認值

當字典中沒有的鍵第一次出現時,default_factory自動為其返回一個空列表,list.append()會將值添加進新列表;再次遇到相同的鍵時,list.append()將其值再添加進該列表。

總結

原文鏈接:https://blog.csdn.net/weixin_46707326/article/details/117387329

欄目分類
最近更新