" />

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

Python字典使用技巧詳解

 更新時(shí)間:2022年11月14日 10:47:47   作者:趙卓不凡  
Python 中字典和集合也是非常相近的概念,而且從外觀看上去,也有那么一絲絲的相似。本文將從字典基本知識(shí)入手,為你展開字典類型數(shù)據(jù)的各個(gè)知識(shí)點(diǎn),需要的可以參考一下

1. 引言

在日常工作中,大家都需要進(jìn)行字典的相關(guān)操作,對于某些初學(xué)者,經(jīng)常會(huì)寫一堆繁瑣的代碼來實(shí)現(xiàn)某項(xiàng)簡單的功能。本篇文章重點(diǎn)介紹一些在Python中關(guān)于字典的一些簡單技巧,熟練掌握相關(guān)技巧可以極大提升大家的工作效率。

閑話少說,我們直接開始吧!

2. 使用union操作合并字典

當(dāng)然我們可以使用for循環(huán)來組合不同字典中的元素,但是在使用Python3.9之后,我們可以方便的使用union操作來進(jìn)行字典的合并。

樣例代碼如下:

cities_us = {'New York City': 'US', 'Los Angeles': 'US'}
cities_uk = {'London': 'UK', 'Birmingham': 'UK'}
cities = cities_us|cities_uk
print(cities)
# {'New York City': 'US', 'Los Angeles': 'US', 'London': 'UK', 'Birmingham': 'UK'}

當(dāng)然我們也可以使用|= 來實(shí)現(xiàn),如下:

cities_us = {'New York City': 'US', 'Los Angeles': 'US'}
cities_uk = {'London': 'UK', 'Birmingham': 'UK'}
cities_us |= cities_uk
print(cities_us)
# {'New York City': 'US', 'Los Angeles': 'US', 'London': 'UK', 'Birmingham': 'UK'}

3. 使用解包操作合并字典

考慮到使用union操作的簡潔性,我經(jīng)常盡可能的使用該操作進(jìn)行字典的合并操作。但是,如果我們使用的是Python3.9以下的版本,有沒有其他簡潔的方式來實(shí)現(xiàn)上述字典合并功能呢?

當(dāng)然是存在的,此時(shí)推薦使用解包操作來實(shí)現(xiàn)。

樣例如下:

cities_1 = {'New York City': 'US', 'Los Angeles': 'US'}
cities_2 = {'London': 'UK', 'Birmingham': 'UK'}
cities = {**cities_1, **cities_2}
print(cities)
# {'New York City': 'US', 'Los Angeles': 'US', 'London': 'UK', 'Birmingham': 'UK'}

4. 使用字典生成式

與Python中的列表生成式一樣,字典生成式也是創(chuàng)建字典的一種簡便的方法,它為我們提供了篩選數(shù)據(jù)的靈活性。

字典生成式的一般范式為:

D = {<!--{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E-->key: value for key,value in iterable (if condition)}

我們可以通過下方例子來體檢一下字典生成式的強(qiáng)大,如下:

cities = ['London', 'New York', 'Tokyo', 'Cambridge', 'Oxford']
countries = ['UK', 'US', 'Japan', 'UK', 'UK']
uk_cities = {city: country for city, country in zip(cities, countries) if country == 'UK'}
print(uk_cities)
# {'London': 'UK', 'Cambridge': 'UK', 'Oxford': 'UK'}

5. 字典中key-value互換

在某些情形下,我們需要互換字典中的key-value,當(dāng)然有各種各樣的策略來實(shí)現(xiàn)上述功能。

以下是我比較推薦的兩種實(shí)現(xiàn),如下:

cities = {<!--{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E-->'London': 'UK', 'Tokyo': 'Japan', 'New York': 'US'}

方案一:

reversed_cities = {v: k for k, v in cities.items()}
print(reversed_cities)
# {'UK': 'London', 'Japan': 'Tokyo', 'US': 'New York'}

方案二:

reversed_cities = dict(zip(cities.values(), cities.keys()))
print(reversed_cities)

6. 列表轉(zhuǎn)為字典

列表也是Python中最常使用的數(shù)據(jù)結(jié)構(gòu)之一,在某些情形下,我們需要將列表轉(zhuǎn)化為字典。這里我們分情況來討論:

假如列表中包含key和value,此時(shí)可以直接使用dict來生成相應(yīng)的對象,如下:

cities = [('London', 'UK'), ('New York', 'US'), ('Tokyo', 'Japan')]
d_cities = dict(cities)
print(d_cities)
# {'London': 'UK', 'New York': 'US', 'Tokyo': 'Japan'}

如果列表中只含有key,需要統(tǒng)一賦值某value,此時(shí)一般使用dict.fromkeys 方法來實(shí)現(xiàn),如下:

cities = ['London', 'Leeds', 'Birmingham']
d_cities = dict.fromkeys(cities,'UK') # set the default value to 'UK' 
print(d_cities)
# {'London': 'UK', 'Leeds': 'UK', 'Birmingham': 'UK'}

7. 字典按照value來排序

使用一行代碼來實(shí)現(xiàn)字典按照value排序,可以借助lambda來實(shí)現(xiàn),樣例如下:

cities = {'London': '2', 'Tokyo': '3', 'New York': '1'}
print(sorted(cities.items(),key=lambda d:d[1]))
# [('New York', '1'), ('London', '2'), ('Tokyo', '3')]

8. 使用Counter

如果我們需要知道在字符串中每個(gè)字母使用了多少次,最直觀的方法可能是編寫一個(gè)for循環(huán)來遍歷所有字母并進(jìn)行統(tǒng)計(jì)。

但如果我們知道Counter,則上述任務(wù)將變得異常簡單:

from collections import Counter
city = "Yang Zhou"
chars = Counter(city)
print(chars)
# Counter({'Y': 1, 'a': 1, 'n': 1, 'g': 1, ' ': 1, 'Z': 1, 'h': 1, 'o': 1, 'u': 1})

顧名思義,Counter對象幫助我們完成字符統(tǒng)計(jì)部分,并將結(jié)果保存為字典。如果我們能在類似的使用場景中記住這個(gè)特殊的dict,那么可以節(jié)省大量的代碼編寫時(shí)間。

9. 總結(jié)

本文重點(diǎn)介紹了Python中字典操作的相關(guān)技巧,并針對性的給出了相關(guān)示例和代碼實(shí)現(xiàn)。最后,送給大家兩句話共勉:

學(xué)習(xí)Python意味著我們可以編寫返回正確結(jié)果的程序。

掌握Python意味著我們可以以優(yōu)雅、整潔和Pythonic的方式編寫相同的程序。

到此這篇關(guān)于Python字典使用技巧詳解的文章就介紹到這了,更多相關(guān)Python字典內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中Cryptography庫實(shí)現(xiàn)加密解密

    Python中Cryptography庫實(shí)現(xiàn)加密解密

    Python中Cryptography庫給你的文件加把安全鎖,本文主要介紹了Python中Cryptography庫實(shí)現(xiàn)加密解密,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • python 實(shí)現(xiàn)仿微信聊天時(shí)間格式化顯示的代碼

    python 實(shí)現(xiàn)仿微信聊天時(shí)間格式化顯示的代碼

    這篇文章主要介紹了python 實(shí)現(xiàn)仿微信聊天時(shí)間格式化顯示,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-04-04
  • 用基于python的appium爬取b站直播消費(fèi)記錄

    用基于python的appium爬取b站直播消費(fèi)記錄

    因工作需要,需要爬取相關(guān)數(shù)據(jù),之前是爬取網(wǎng)頁數(shù)據(jù),可以用python的requests和Selenium進(jìn)行爬取。但b站的直播消費(fèi)數(shù)據(jù)網(wǎng)頁版不能顯示,只能在手機(jī)上看到,所以就有了這篇文章。需要的朋友可以參考下
    2021-04-04
  • Python深入06——python的內(nèi)存管理詳解

    Python深入06——python的內(nèi)存管理詳解

    本篇文章主要介紹了python的內(nèi)存管理詳解,語言的內(nèi)存管理是語言設(shè)計(jì)的一個(gè)重要方面。它是決定語言性能的重要因素。有興趣的同學(xué)可以了解一下。
    2016-12-12
  • 基于python框架Scrapy爬取自己的博客內(nèi)容過程詳解

    基于python框架Scrapy爬取自己的博客內(nèi)容過程詳解

    這篇文章主要介紹了基于python框架Scrapy爬取自己的博客內(nèi)容過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 使用Python解決常見格式圖像讀取nii,dicom,mhd

    使用Python解決常見格式圖像讀取nii,dicom,mhd

    這篇文章主要介紹了使用Python解決常見格式圖像讀取nii,dicom,mhd,下文具體操作過程需要的小伙伴可以參考一下
    2022-04-04
  • Python socket處理client連接過程解析

    Python socket處理client連接過程解析

    這篇文章主要介紹了Python socket處理client連接過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 利用python腳本如何簡化jar操作命令

    利用python腳本如何簡化jar操作命令

    這篇文章主要給大家介紹了關(guān)于利用python腳本如何簡化jar操作命令的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • python批量提交沙箱問題實(shí)例

    python批量提交沙箱問題實(shí)例

    這篇文章主要介紹了python批量提交沙箱問題實(shí)例,針對批量提交沙箱出現(xiàn)的問題進(jìn)行了針對性的分析與實(shí)例講解,具有不錯(cuò)的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-10-10
  • Django ManyToManyField 跨越中間表查詢的方法

    Django ManyToManyField 跨越中間表查詢的方法

    今天小編就為大家分享一篇Django ManyToManyField 跨越中間表查詢的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12

最新評論

乐陵市| 三河市| 峨眉山市| 怀安县| 临泽县| 东城区| 余江县| 舞阳县| 高要市| 万山特区| 斗六市| 迁安市| 通州市| 阿尔山市| 平潭县| 东光县| 武功县| 昌都县| 桐梓县| 涟源市| 佳木斯市| 湾仔区| 鄯善县| 荣成市| 军事| 安塞县| 射洪县| 绍兴市| 千阳县| 宜宾市| 包头市| 腾冲县| 邹平县| 长白| 郴州市| 徐水县| 东平县| 屏山县| 女性| 舟山市| 鹰潭市|