日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

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

來源: 責編: 時間:2024-06-24 09:14:25 141觀看
導讀字典作為Python的日常工具,擁有快速查找、高效存儲等特性,是數據處理的必備神器。讓我們一起揭開它的15個隱藏技巧,讓你的代碼飛起來!1. 初始化小技巧:快速創建字典# 使用zip函數結合列表,一鍵成字典keys = ['name', 'age'

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

LUD28資訊網——每日最新資訊28at.com

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

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

這個小魔法直接將兩個列表配對成字典,是不是很神奇?LUD28資訊網——每日最新資訊28at.com

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

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

一行代碼,數字變平方,推導式讓你的代碼優雅到不行!LUD28資訊網——每日最新資訊28at.com

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

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

這招用get方法,安全訪問,媽媽再也不擔心我遇到KeyError了。LUD28資訊網——每日最新資訊28at.com

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

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

pop一出,誰與爭鋒,鍵值對消失無蹤。LUD28資訊網——每日最新資訊28at.com

5. 更新字典,合并高手

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

update方法,字典合并不費吹灰之力。LUD28資訊網——每日最新資訊28at.com

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

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

items方法讓我們遍歷得明明白白,每一個鍵值對都不放過。LUD28資訊網——每日最新資訊28at.com

7. 只取鍵,或只取值

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

keys和values方法,讓你專注你想要的那部分。LUD28資訊網——每日最新資訊28at.com

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

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

直接用in,檢查鍵是否存在,就是這么直接。LUD28資訊網——每日最新資訊28at.com

9. 字典長度,一目了然

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

len函數,快速統計字典的鍵數量。LUD28資訊網——每日最新資訊28at.com

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表達式,按需排序,靈活自如。LUD28資訊網——每日最新資訊28at.com

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

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

輕松轉換,數據形態任你玩轉。LUD28資訊網——每日最新資訊28at.com

12. 清空字典,重頭再來

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

clear方法,一切從零開始。LUD28資訊網——每日最新資訊28at.com

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

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

像俄羅斯套娃一樣,一層又一層,復雜數據輕松管理。LUD28資訊網——每日最新資訊28at.com

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

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

fromkeys,批量初始化,效率滿滿。LUD28資訊網——每日最新資訊28at.com

15. 字典解包,操作升級

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

星號解包,合并字典新姿勢,簡潔而強大。LUD28資訊網——每日最新資訊28at.com

進階使用和高級技巧

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自動初始化鍵對應的值,這里用列表,添加元素變得異常簡單,無需每次都檢查鍵是否存在。LUD28資訊網——每日最新資訊28at.com

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

import copyoriginal_dict = {'a': [1, 2], 'b': 3}shallow_copy = copy.copy(original_dict)deep_copy = copy.deepcopy(original_dict)# 修改原字典中的列表original_dict['a'][0] = 99print("Original:", original_dict)print("Shallow Copy:", shallow_copy)  # 淺拷貝受影響print("Deep Copy:", deep_copy)  # 深拷貝不受影響

了解深淺拷貝的區別,對于處理包含可變對象(如列表)的字典至關重要。LUD28資訊網——每日最新資訊28at.com

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()返回的是視圖對象,可以實時反映字典的變化。LUD28資訊網——每日最新資訊28at.com

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

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

利用列表中的子列表,通過字典推導式快速構建復雜的映射關系。LUD28資訊網——每日最新資訊28at.com

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

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

如果鍵不存在,則初始化并返回該鍵對應的值,否則直接返回已有的值,非常實用。LUD28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-95921-0.html20 個 Python 字典映射技巧,讓數據處理更高效

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 字節面試:說說零拷貝技術實現原理?

下一篇: 為什么在2024年應該使用AVIF而不是JPEG、WebP、PNG和GIF

標簽:
  • 熱門焦點
  • K8S | Service服務發現

    一、背景在微服務架構中,這里以開發環境「Dev」為基礎來描述,在K8S集群中通常會開放:路由網關、注冊中心、配置中心等相關服務,可以被集群外部訪問;圖片對于測試「Tes」環境或者
  • 從零到英雄:高并發與性能優化的神奇之旅

    作者 | 波哥審校 | 重樓作為公司的架構師或者程序員,你是否曾經為公司的系統在面對高并發和性能瓶頸時感到手足無措或者焦頭爛額呢?筆者在出道那會為此是吃盡了苦頭的,不過也得
  • 中國家電海外掘金正當時|出海專題

    作者|吳南南編輯|胡展嘉運營|陳佳慧出品|零態LT(ID:LingTai_LT)2023年,出海市場戰況空前,中國創業者在海外紛紛摩拳擦掌,以期能夠把中國的商業模式、創業理念、戰略打法輸出海外,他們依
  • 當家的盒馬,加速謀生

    來源 | 價值星球Planet作者 | 歸去來自己“當家”的盒馬,開始加速謀生了。據盒馬官微消息,盒馬計劃今年開放生鮮供應鏈,將其生鮮商品送往食堂。目前,盒馬在上海已經與
  • 年輕人的“職場羞恥感”,無處不在

    作者:馮曉亭 陶 淘 李 欣 張 琳 馬舒葉來源:燃次元“人在職場,應該選擇什么樣的著裝?”近日,在網絡上,一個與著裝相關的帖子引發關注,在該帖子里,一位在高級寫字樓亞洲金
  • 東方甄選單飛:有些鳥注定是關不住的

    作者:彭寬鴻來源:華爾街科技眼‍‍‍‍‍‍‍‍‍‍東方甄選創始人俞敏洪帶隊的“7天甘肅行”直播活動已在近日順利收官。成立后一
  • 認真聊聊東方甄選:如何告別低垂的果實

    來源:山核桃作者:財經無忌爆火一年后,俞敏洪和他的東方甄選依舊是頗受外界關心的“網紅”。7月5日至9日,為期5天的東方甄選“甘肅行”首次在自有App內直播,
  • 三星獲批量產iPhone 15全系屏幕:蘋果史上最驚艷直屏

    按照慣例,蘋果將繼續在今年9月舉辦一年一度的秋季新品發布會,有傳言稱發布會將于9月12日舉行,屆時全新的iPhone 15系列將正式與大家見面,不出意外的話
  • 英特爾Xe HPG游戲顯卡:擁有512EU,單風扇版本

    據10 月 30 日外媒 TheVerge 消息報道,英特爾 Xe HPG Arc Alchemist 的正面實被曝光,不僅擁有 512 EU 版顯卡,還擁有 128EU 的單風扇版本。另外,這款顯卡 PCB
Top 主站蜘蛛池模板: 诸暨市| 东阿县| 安龙县| 怀来县| 响水县| 合江县| 海安县| 泰安市| 姜堰市| 广元市| 游戏| 陇西县| 龙岩市| 工布江达县| 潢川县| 罗甸县| 浦江县| 内黄县| 铁岭市| 平乐县| 姚安县| 甘洛县| 宁陕县| 山丹县| 平远县| 乌兰县| 漾濞| 塔城市| 育儿| 临清市| 新津县| 桐柏县| 怀化市| 巴青县| 江津市| 垦利县| 汤阴县| 黎城县| 南丰县| 辽阳县| 东丽区|