最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2022年12月05日 15:28:35   作者:枉費紅箋  
字典中有成對出現(xiàn)的鍵和值,但是字典中的鍵值對不是都能修改的,只有值才能修改,下面這篇文章主要給大家介紹了關(guān)于Python交換字典鍵值對的四種方法,需要的朋友可以參考下

前言

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

一、當(dāng)值唯一時

1. 使用zip進行交換

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

2. 使用for循環(huán)遍歷交換

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

3. 使用dict.items()交換

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

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

二、當(dāng)值不唯一時

如果值不唯一,可以使用下面這種方式,最后輸出結(jié)果是{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)
# 運行結(jié)果
# {1: ['A'], 2: ['B'], 3: ['C', 'D']}

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

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

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

總結(jié)

到此這篇關(guān)于Python交換字典鍵值對的四種方法的文章就介紹到這了,更多相關(guān)Python交換字典鍵值對內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Django中類視圖使用裝飾器的方式

    詳解Django中類視圖使用裝飾器的方式

    這篇文章主要介紹了詳解Django中類視圖使用裝飾器的方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • Python實現(xiàn)批量繪制遙感影像數(shù)據(jù)的直方圖

    Python實現(xiàn)批量繪制遙感影像數(shù)據(jù)的直方圖

    這篇文章主要為大家詳細介紹了如何基于Python中g(shù)dal模塊,實現(xiàn)對大量柵格圖像批量繪制直方圖,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2023-02-02
  • 使用python-pptx包批量修改ppt格式的實現(xiàn)

    使用python-pptx包批量修改ppt格式的實現(xiàn)

    今天小編就為大家分享一篇使用python-pptx包批量修改ppt格式的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • python selenium 執(zhí)行完畢關(guān)閉chromedriver進程示例

    python selenium 執(zhí)行完畢關(guān)閉chromedriver進程示例

    今天小編就為大家分享一篇python selenium 執(zhí)行完畢關(guān)閉chromedriver進程示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python3二分查找?guī)旌瘮?shù)bisect(),bisect_left()和bisect_right()的區(qū)別

    Python3二分查找?guī)旌瘮?shù)bisect(),bisect_left()和bisect_right()的區(qū)別

    這篇文章主要介紹了Python3二分查找?guī)旌瘮?shù)bisect(),bisect_left()和bisect_right()的區(qū)別,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • python使用cookielib庫示例分享

    python使用cookielib庫示例分享

    Python中cookielib庫(python3中為http.cookiejar)為存儲和管理cookie提供客戶端支持,下面是使用示例
    2014-03-03
  • python實現(xiàn)堆排序的實例講解

    python實現(xiàn)堆排序的實例講解

    在本篇文章里小編給大家分享的是一篇關(guān)于python實現(xiàn)堆排序的實例講解內(nèi)容,需要的朋友們可以學(xué)習(xí)參考下。
    2020-02-02
  • Python成功解決TypeError: ‘method’ object is not subscriptable

    Python成功解決TypeError: ‘method’ object is 

    在Python編程中,有時候我們可能會遇到一個讓人摸不著頭腦的錯誤信息:TypeError: 'method' object is not subscriptable,本文給大家介紹了Python如何成功解決TypeError: ‘method’ object is not subscriptable,需要的朋友可以參考下
    2024-06-06
  • Python+wxauto實現(xiàn)微信自動化操作

    Python+wxauto實現(xiàn)微信自動化操作

    在眾多自動化工具中,Python的wxauto庫以其強大的功能和簡單易用的特點,為我們打開了微信自動化操作的大門,下面我們就來看看它的具體操作吧
    2025-02-02
  • numpy模塊中axis的理解與使用

    numpy模塊中axis的理解與使用

    而在numpy中有很多的函數(shù)都涉及到axis,numpy中的軸axis是很重要的,許多numpy的操作根據(jù)axis的取值不同,作出的操作也不相同,這篇文章主要給大家介紹了關(guān)于numpy模塊中axis的理解與使用的相關(guān)資料,需要的朋友可以參考下
    2022-03-03

最新評論

义乌市| 通化县| 犍为县| 绍兴市| 太原市| 资中县| 沭阳县| 双牌县| 岳池县| 红桥区| 宁强县| 体育| 桦南县| 民县| 财经| 喀什市| 通州市| 锦州市| 石家庄市| 广州市| 河南省| 泸水县| 微博| 彭州市| 和静县| 南陵县| 土默特左旗| 房山区| 山东省| 卓尼县| 江西省| 和静县| 家居| 永清县| 绍兴市| 普陀区| 天等县| 杂多县| 牙克石市| 庆元县| 商南县|