搜尋
首頁後端開發Python教學Python學習的小技巧關於利用字典的預設行為

這篇文章主要為大家介紹了Python學習小技巧之利用字典的預設行為的相關資料,文中介紹的非常詳細,對大家有一定的參考學習價值,需要的朋友們下面來一起看看吧。

本文介紹的是關於Python利用字典的預設行為的相關內容,分享出來供大家參考學習,以下來看看詳細的介紹:

##典型程式碼1:

from collections import defaultdict 
 
 
if name == 'main': 
 data = defaultdict(int) 
 data[0] += 1 
 print(data)

輸出1:

defaultdict(<type &#39;int&#39;>, {0: 1})

典型程式碼2:

if name == &#39;main&#39;: 
 data = {&#39;k&#39;: 1} 
 data.setdefault(&#39;k&#39;, 100) 
 data.setdefault(&#39;k1&#39;, -100) 
 print(data)

輸出2:

{&#39;k&#39;: 1, &#39;k1&#39;: -100}

#應用場景:

典型程式碼1的應用場景:

在寫一些統計程式碼的時候,總是需要統計一些

key的個數,用一個字典來儲存計數的結果,如果使用的是經典字典,那麼我們每次都需要人工寫程式碼來判斷對應的key是否存在,如果不存在還需要將其存入這個字典中,再將其初始化為0;而利用defaultdict資料型別,我們就可以直接指定一個工廠函數來為我們生產預設值,典型程式碼1中使用的是內建的int函數,當然也可以是lambda表達式定義的匿名函數

典型程式碼2的應用場景:

對於一個字典,如果我們只想保留每個key被第一次指定的值,如果用傳統的方法data['k']='v'的話,我們需要每次都要判斷對應的key是否已經存在於字典中,然後才能決定是否能夠設定這個key的值;二利用dict的setdefault方法,我們可以避免這次判斷,以更簡潔的方式實現這個功能。

帶來的好處:

      1. 場景2中的setdefault方法,在Python解釋器的實作中經過最佳化,一般情況下要比自己寫的同樣功能的Python程式碼執行效率更緊湊,邏輯上,讀程式碼時理解起來也更有效率

其它說明:      1. defaultdict類型,可以接收大量的類型,內建的list

, set, dict都可以直接使用,使用lambda匿名函數,可以使用自己定義的型別

#總結

##

以上是Python學習的小技巧關於利用字典的預設行為的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
列表和陣列之間的選擇如何影響涉及大型數據集的Python應用程序的整體性能?列表和陣列之間的選擇如何影響涉及大型數據集的Python應用程序的整體性能?May 03, 2025 am 12:11 AM

ForhandlinglargedatasetsinPython,useNumPyarraysforbetterperformance.1)NumPyarraysarememory-efficientandfasterfornumericaloperations.2)Avoidunnecessarytypeconversions.3)Leveragevectorizationforreducedtimecomplexity.4)Managememoryusagewithefficientdata

說明如何將內存分配給Python中的列表與數組。說明如何將內存分配給Python中的列表與數組。May 03, 2025 am 12:10 AM

Inpython,ListSusedynamicMemoryAllocationWithOver-Asalose,而alenumpyArraySallaySallocateFixedMemory.1)listssallocatemoremoremoremorythanneededinentientary上,respizeTized.2)numpyarsallaysallaysallocateAllocateAllocateAlcocateExactMemoryForements,OfferingPrediCtableSageButlessemageButlesseflextlessibility。

您如何在Python數組中指定元素的數據類型?您如何在Python數組中指定元素的數據類型?May 03, 2025 am 12:06 AM

Inpython,YouCansspecthedatatAtatatPeyFelemereModeRernSpant.1)Usenpynernrump.1)Usenpynyp.dloatp.dloatp.ploatm64,formor professisconsiscontrolatatypes。

什麼是Numpy,為什麼對於Python中的數值計算很重要?什麼是Numpy,為什麼對於Python中的數值計算很重要?May 03, 2025 am 12:03 AM

NumPyisessentialfornumericalcomputinginPythonduetoitsspeed,memoryefficiency,andcomprehensivemathematicalfunctions.1)It'sfastbecauseitperformsoperationsinC.2)NumPyarraysaremorememory-efficientthanPythonlists.3)Itoffersawiderangeofmathematicaloperation

討論'連續內存分配”的概念及其對數組的重要性。討論'連續內存分配”的概念及其對數組的重要性。May 03, 2025 am 12:01 AM

Contiguousmemoryallocationiscrucialforarraysbecauseitallowsforefficientandfastelementaccess.1)Itenablesconstanttimeaccess,O(1),duetodirectaddresscalculation.2)Itimprovescacheefficiencybyallowingmultipleelementfetchespercacheline.3)Itsimplifiesmemorym

您如何切成python列表?您如何切成python列表?May 02, 2025 am 12:14 AM

SlicingaPythonlistisdoneusingthesyntaxlist[start:stop:step].Here'showitworks:1)Startistheindexofthefirstelementtoinclude.2)Stopistheindexofthefirstelementtoexclude.3)Stepistheincrementbetweenelements.It'susefulforextractingportionsoflistsandcanuseneg

在Numpy陣列上可以執行哪些常見操作?在Numpy陣列上可以執行哪些常見操作?May 02, 2025 am 12:09 AM

numpyallowsforvariousoperationsonArrays:1)basicarithmeticlikeaddition,減法,乘法和division; 2)evationAperationssuchasmatrixmultiplication; 3)element-wiseOperations wiseOperationswithOutexpliitloops; 4)

Python的數據分析中如何使用陣列?Python的數據分析中如何使用陣列?May 02, 2025 am 12:09 AM

Arresinpython,尤其是Throughnumpyandpandas,weessentialFordataAnalysis,offeringSpeedAndeffied.1)NumpyArseNable efflaysenable efficefliceHandlingAtaSetSetSetSetSetSetSetSetSetSetSetsetSetSetSetSetsopplexoperationslikemovingaverages.2)

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。