字典是Python內置的一種數據結構,它以鍵-值對的形式存儲數據,每個鍵對應一個值,所以我們也把字典稱作關聯數組或者映射。
在Python中,我們可以通過setdefault函數實現字典鍵值對的初始化。在這篇文章中,我們將從以下幾個方面來講解它的使用。
一、setdefault函數概述
setdefault函數的作用是在字典中找到指定鍵並返回對應值,如果找不到則將該鍵插入字典中,並將對應值初始化為指定值。
setdefault函數的語法如下所示:
dict.setdefault(key, default=None)
其中,key是要查找的鍵;default是要添加的鍵值對中,鍵對應的值,如果沒有指定就為None。
二、使用setdefault函數初始化字典鍵值對
假設我們現在想要統計一段文本中每個單詞出現的次數,我們可以首先將文本分割成單詞的列表,然後遍歷列表,統計每個單詞的出現次數:
text = "I am a Python engineer. I love Python programming." word_list = text.split() word_count = {} for word in word_list: if word in word_count: word_count[word] += 1 else: word_count[word] = 1 print(word_count)
輸出結果為:
{'I': 1, 'am': 1, 'a': 1, 'Python': 2, 'engineer.': 1, 'love': 1, 'programming.': 1}
可以發現,我們可以通過遍歷單詞列表,使用if語句判斷該單詞是否已經在字典中出現過,如果出現過,就將該單詞對應的值加1,否則新建一個鍵值對,將該單詞的值初始化為1。
使用setdefault函數的寫法如下:
text = "I am a Python engineer. I love Python programming." word_list = text.split() word_count = {} for word in word_list: word_count.setdefault(word, 0) word_count[word] += 1 print(word_count)
輸出結果為:
{'I': 1, 'am': 1, 'a': 1, 'Python': 2, 'engineer.': 1, 'love': 1, 'programming.': 1}
可以看到,使用setdefault函數實現了相同的功能,而且代碼更加簡潔。
三、使用setdefault函數避免頻繁訪問字典
在一些特定的場景中,使用setdefault函數可以避免頻繁讀寫字典。例如,我們想要統計一段文本中每個單詞的出現位置,可以使用如下代碼:
text = "I am a Python engineer. I love Python programming." word_list = text.split() word_positions = {} for i, word in enumerate(word_list): if word not in word_positions: word_positions[word] = [] word_positions[word].append(i) print(word_positions)
輸出結果為:
{'I': [0], 'am': [1], 'a': [2], 'Python': [3, 5], 'engineer.': [4], 'love': [6], 'programming.': [7]}
可以看到,我們首先判斷該單詞是否在字典中出現過,如果沒有,就新建一個鍵值對,將值初始化為一個空列表,然後將該單詞出現的位置添加到列表中。
使用setdefault函數的寫法如下:
text = "I am a Python engineer. I love Python programming." word_list = text.split() word_positions = {} for i, word in enumerate(word_list): word_positions.setdefault(word, []) word_positions[word].append(i) print(word_positions)
輸出結果為:
{'I': [0], 'am': [1], 'a': [2], 'Python': [3, 5], 'engineer.': [4], 'love': [6], 'programming.': [7]}
可以發現,使用setdefault函數的代碼更加簡潔,而且在字典的鍵已經存在的情況下,避免了一次的訪問和判斷操作。
四、結語
在Python中,setdefault函數可以方便地實現字典鍵值對的初始化,避免了我們在使用字典時需要頻繁使用if語句進行判斷。同時在一些特定的場景中,使用setdefault函數可以避免頻繁讀寫字典,提高了代碼的效率。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/235641.html