成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

20 個 Python 字典映射技巧,讓數據處理更高效

開發
字典作為Python的日常工具,擁有快速查找、高效存儲等特性,是數據處理的必備神器。讓我們一起揭開它的15個隱藏技巧,讓你的代碼飛起來!

字典作為Python的日常工具,擁有快速查找、高效存儲等特性,是數據處理的必備神器。讓我們一起揭開它的15個隱藏技巧,讓你的代碼飛起來!

1. 初始化小技巧:快速創建字典

# 使用zip函數結合列表,一鍵成字典
keys = ['name', 'age']
values = ['Alice', 24]
my_dict = dict(zip(keys, values))
print(my_dict)

這個小魔法直接將兩個列表配對成字典,是不是很神奇?

2. 字典推導式,簡潔之美

numbers = [1, 2, 3, 4]
squares = {num: num*num for num in numbers}
print(squares)

一行代碼,數字變平方,推導式讓你的代碼優雅到不行!

3. 獲取鍵不存在的默認值,避免KeyError

my_dict = {'name': 'Bob'}
print(my_dict.get('age', 'Not Found'))  # 不怕找不到,直接告訴你“Not Found”

這招用get方法,安全訪問,媽媽再也不擔心我遇到KeyError了。

4. 刪除鍵值對,干凈利落

# pop方法,刪除并返回值
age = my_dict.pop('age', 'Already gone')  # 如果不存在,就默認返回'Already gone'
print(age)
print(my_dict)  # 看,'age'沒了

pop一出,誰與爭鋒,鍵值對消失無蹤。

5. 更新字典,合并高手

dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
dict1.update(dict2)
print(dict1)  # 'b'的值被更新,'c'加入,合并就這么簡單

update方法,字典合并不費吹灰之力。

6. 遍歷字典,洞察每個角落

for key, value in my_dict.items():
    print(f"Key: {key}, Value: {value}")

items方法讓我們遍歷得明明白白,每一個鍵值對都不放過。

7. 只取鍵,或只取值

keys_only = my_dict.keys()
values_only = my_dict.values()
print(list(keys_only))  # 轉成列表方便查看
print(list(values_only))

keys和values方法,讓你專注你想要的那部分。

8. 檢查鍵是否存在,一步到位

if 'age' in my_dict:
    print("Age is there!")
else:
    print("Sorry, no age.")

直接用in,檢查鍵是否存在,就是這么直接。

9. 字典長度,一目了然

print(len(my_dict))  # 瞬間知道字典大小

len函數,快速統計字典的鍵數量。

10. 字典排序,按值或按鍵

# 按值排序
sorted_dict = sorted(my_dict.items(), key=lambda x: x[1])
print(sorted_dict)

# 按鍵排序
sorted_by_key = sorted(my_dict.items())
print(sorted_by_key)

排序函數+lambda表達式,按需排序,靈活自如。

11. 字典轉列表,形式轉換

list_of_tuples = list(my_dict.items())
print(list_of_tuples)

輕松轉換,數據形態任你玩轉。

12. 清空字典,重頭再來

my_dict.clear()
print(my_dict)  # 空空如也,準備迎接新的數據

clear方法,一切從零開始。

13. 字典嵌套,數據結構的魔術

nested_dict = {
    'person1': {'name': 'Alice', 'age': 24},
    'person2': {'name': 'Bob', 'age': 30}
}
print(nested_dict['person1']['name'])  # 訪問內層,深挖數據

像俄羅斯套娃一樣,一層又一層,復雜數據輕松管理。

14. 利用fromkeys創建初始化字典

keys_list = ['name', 'age', 'city']
default_values = None
my_init_dict = dict.fromkeys(keys_list, default_values)
print(my_init_dict)  # 統一初始值,批量創建

fromkeys,批量初始化,效率滿滿。

15. 字典解包,操作升級

dict_a = {'x': 1, 'y': 2}
dict_b = {'y': 3, 'z': 4}
{**dict_a, **dict_b}  # **操作符,解包合并,新字典誕生

星號解包,合并字典新姿勢,簡潔而強大。

進階使用和高級技巧

16. 使用defaultdict避免KeyError

from collections import defaultdict

# 創建一個默認值為列表的字典
my_default_dict = defaultdict(list)
my_default_dict['fruits'].append('apple')
my_default_dict['fruits'].append('banana')
print(my_default_dict)

defaultdict自動初始化鍵對應的值,這里用列表,添加元素變得異常簡單,無需每次都檢查鍵是否存在。

17. 字典的深拷貝與淺拷貝

import copy

original_dict = {'a': [1, 2], 'b': 3}
shallow_copy = copy.copy(original_dict)
deep_copy = copy.deepcopy(original_dict)

# 修改原字典中的列表
original_dict['a'][0] = 99

print("Original:", original_dict)
print("Shallow Copy:", shallow_copy)  # 淺拷貝受影響
print("Deep Copy:", deep_copy)  # 深拷貝不受影響

了解深淺拷貝的區別,對于處理包含可變對象(如列表)的字典至關重要。

18. 字典的視圖對象:動態觀察變化

my_dict = {'name': 'Alice', 'age': 24}
keys_view = my_dict.keys()
print("Initial Keys:", keys_view)

# 添加新的鍵值對
my_dict['city'] = 'Wonderland'
print("Keys after update:", keys_view)  # 視圖自動更新

字典的keys(), values(), items()返回的是視圖對象,可以實時反映字典的變化。

19. 高級字典推導式:多層映射

data = [('John', 'Doe', 23), ('Jane', 'Doe', 24)]
people = {f"{first} {last}": age for first, last, age in data}
print(people)

利用列表中的子列表,通過字典推導式快速構建復雜的映射關系。

20. 使用dict.setdefault(),訪問與初始化二合一

my_dict = {}
my_dict.setdefault('score', []).append(90)
my_dict.setdefault('score', []).append(95)
print(my_dict)  # 避免了多次檢查和初始化

如果鍵不存在,則初始化并返回該鍵對應的值,否則直接返回已有的值,非常實用。

責任編輯:趙寧寧 來源: 手把手PythonAI編程
相關推薦

2024-02-26 16:40:58

2024-09-06 17:32:55

字符串Python

2015-03-16 16:56:54

開發技巧應用孤島PaaS

2019-11-25 10:20:54

CSS代碼javascript

2019-01-29 15:40:06

云應用開發云環境

2018-06-20 11:00:06

云應用開發PaaS

2011-08-29 09:33:48

2019-04-19 08:47:00

前端監控數據

2019-04-29 08:31:25

PythonPandas數據

2023-11-24 11:20:04

functoolsPython

2024-01-01 18:57:01

Code技巧符號

2018-05-08 14:58:07

戴爾

2024-09-25 14:16:35

2015-09-30 14:22:44

Qlik數據

2023-03-24 16:41:36

Pandas技巧數據處理

2023-09-25 13:19:41

pandasPython

2024-06-24 13:35:48

2024-07-26 00:00:05

JavaScript單行技巧

2024-08-02 17:23:12

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产传媒视频在线观看 | 日韩精品一区二区三区四区视频 | 日韩欧美一区二区三区在线播放 | 大久| 国产成人黄色 | 成年视频在线观看福利资源 | 毛片在线免费 | 自拍偷拍亚洲欧美 | 久久久久久久久久久久亚洲 | 视频一二三区 | 91在线精品视频 | 久久久.com| 欧美精品一区二区三区蜜桃视频 | 奇色影视 | 波多野结衣精品 | 丁香六月激情 | 欧美一区二区成人 | 久久精品视频在线播放 | 亚洲精品aⅴ | 成人精品一区 | 蜜桃视频在线观看免费视频网站www | 波多野结衣在线观看一区二区三区 | 国产视频中文字幕 | 99热热热| 欧一区 | 一区二区在线 | 亚洲激情在线视频 | 国产91亚洲精品 | 亚洲精品福利视频 | 91大神新作在线观看 | 美日韩免费 | 欧美亚洲国产成人 | 国产视频精品在线观看 | 国产91综合| 国产一区二区精品 | 久久久国产精品视频 | 欧美 日韩 国产 成人 在线 | 国产成人高清 | 凹凸日日摸日日碰夜夜 | 香蕉大人久久国产成人av | 成人深夜福利在线观看 |