你必須知道的Python?Dict和Set實(shí)用技巧分享
一、Dict(字典):鍵值對(duì)的魔法
1. 基本用法(創(chuàng)建和訪問)
person = {"name": "Alice", "age": 25, "city": "Shanghai"}
print(person["name"]) # 輸出:Alice
2. 字典的高效查找
字典的查找速度極快,時(shí)間復(fù)雜度為 O(1)。相比 list 的 O(n),處理大量數(shù)據(jù)時(shí)優(yōu)勢(shì)明顯。
3. 字典推導(dǎo)式
squares = {x: x*x for x in range(1, 6)}
print(squares) # 輸出:{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
4. get() 方法,優(yōu)雅處理 KeyError
person = {"name": "Alice", "age": 25}
score = person.get("score", 0)
print(score) # 輸出:0
5. 合并字典的正確姿勢(shì)
a = {"x": 1, "y": 2}
b = {"y": 3, "z": 4}
c = {**a, **b}
print(c) # 輸出:{'x': 1, 'y': 3, 'z': 4}
6.注意事項(xiàng)
- dict (字典)是不允許一個(gè)鍵創(chuàng)建兩次的,但是在創(chuàng)建 dict (字典)的時(shí)候如果出現(xiàn)了一個(gè)鍵值賦予了兩次,會(huì)以最后一次賦予的值為準(zhǔn)
- dict (字典)鍵必須不可變,可是鍵可以用數(shù)字,字符串或元組充當(dāng),但是就是不能使用列表
7.dict (字典) 的函數(shù)和方法
| 方法和函數(shù) | 描述 |
|---|---|
| len(dict) | 計(jì)算字典元素個(gè)數(shù) |
| str(dict) | 輸出字典可打印的字符串表示 |
| type(variable) | 返回輸入的變量類型,如果變量是字典就返回字典類型 |
| dict.clear() | 刪除字典內(nèi)所有元素 |
| dict.copy() | 返回一個(gè)字典的淺復(fù)制 |
| dict.values() | 以列表返回字典中的所有值 |
| popitem() | 隨機(jī)返回并刪除字典中的一對(duì)鍵和值 |
| dict.items() | 以列表返回可遍歷的(鍵, 值) 元組數(shù)組 |
二、Set(集合):去重與高效運(yùn)算的利器
1. 基本用法(創(chuàng)建)
set1=set([123,456,789])
print(set1)
fruits = {"apple", "banana", "orange"}
fruits.add("pear")
print(fruits)
2. 集合去重
nums = [1, 2, 2, 3, 4, 4, 5]
unique_nums = set(nums)
print(unique_nums) # 輸出:{1, 2, 3, 4, 5}
3. 集合的高效運(yùn)算
- 交集:
& - 并集:
| - 差集:
-
a = {1, 2, 3}
b = {2, 3, 4}
print(a & b) # 輸出:{2, 3}
print(a | b) # 輸出:{1, 2, 3, 4}
print(a - b) # 輸出:{1}
4. 集合推導(dǎo)式
even = {x for x in range(10) if x % 2 == 0}
print(even) # 輸出:{0, 2, 4, 6, 8}
三、總結(jié)
Dict 適合存儲(chǔ)映射關(guān)系,查找速度極快
Set 適合去重和集合運(yùn)算,效率高
掌握推導(dǎo)式、合并、去重等技巧,讓你的代碼更 Pythonic!
到此這篇關(guān)于你必須知道的Python Dict和Set實(shí)用技巧分享的文章就介紹到這了,更多相關(guān)Python Dict和Set技巧內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
調(diào)試Django時(shí)打印SQL語句的日志代碼實(shí)例
這篇文章主要介紹了調(diào)試Django時(shí)打印SQL語句的日志代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09
Python實(shí)現(xiàn)滑塊驗(yàn)證碼詳解
驗(yàn)證碼作為一種自然人的機(jī)器人的判別工具,被廣泛的用于各種防止程序做自動(dòng)化的場景中。傳統(tǒng)的字符型驗(yàn)證安全性已經(jīng)名存實(shí)亡的情況下,各種新型的驗(yàn)證碼如雨后春筍般涌現(xiàn),今天給大家分享一篇Python實(shí)現(xiàn)滑塊驗(yàn)證碼2022-05-05
python實(shí)現(xiàn)網(wǎng)上購物系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)網(wǎng)上購物系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06
pandas對(duì)齊運(yùn)算的實(shí)現(xiàn)示例
本文主要介紹了pandas對(duì)齊運(yùn)算的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10
python Pandas庫基礎(chǔ)分析之時(shí)間序列的處理詳解
這篇文章主要介紹了python Pandas庫基礎(chǔ)分析之時(shí)間序列的處理詳解,Pandas作為Python環(huán)境下的數(shù)據(jù)分析庫,更是提供了強(qiáng)大的日期數(shù)據(jù)處理的功能,是處理時(shí)間序列的利器,需要的朋友可以參考下2019-07-07
使用python快速在局域網(wǎng)內(nèi)搭建http傳輸文件服務(wù)的方法
這篇文章主要介紹了使用 python快速在局域網(wǎng)內(nèi)搭建http傳輸文件服務(wù),但是這種方法不要傳輸機(jī)密文件,安全性不高,只用到http協(xié)議沒有使用任何加密協(xié)議,具體實(shí)現(xiàn)方法跟隨小編一起看看吧2019-11-11
python實(shí)現(xiàn)批量處理將圖片粘貼到另一張圖片上并保存
今天小編就為大家分享一篇python實(shí)現(xiàn)批量處理將圖片粘貼到另一張圖片上并保存,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-12-12
keras 自定義loss損失函數(shù),sample在loss上的加權(quán)和metric詳解
這篇文章主要介紹了keras 自定義loss損失函數(shù),sample在loss上的加權(quán)和metric詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-05-05
Python+PyQt5開發(fā)一個(gè)智能鍵盤模擬輸入器(附整體源碼)
在當(dāng)今數(shù)字化辦公時(shí)代,自動(dòng)化工具已經(jīng)成為提高工作效率的重要利器,今天我要向大家介紹一款基于PyQt5和pynput庫開發(fā)的智能鍵盤模擬輸入器,感興趣的小伙伴可以了解下2025-10-10

