在Python中迭代時刪除字典中的項


Python字典是一個無序、可變且帶索引的集合。它們具有鍵和值,每個專案都使用鍵來引用。在本文中,我們將探討刪除字典中專案的方法。

使用del和鍵

在這種方法中,我們捕獲需要刪除的鍵值。應用del函式後,這些鍵的鍵值對將被刪除。

示例

 即時演示

# Given dictionary
ADict = {1: 'Mon', 2: 'Tue', 3: 'Wed',4:'Thu',5:'Fri'}

# Get keys with value in 2,3.
to_del = [key for key in ADict if key in(2,3)]

# Delete keys
for key in to_del: del ADict[key]

# New Dictionary
print(ADict)

輸出

執行以上程式碼將得到以下結果:

{1: 'Mon', 4: 'Thu', 5: 'Fri'}

使用包含鍵的列表

我們可以建立一個包含字典中鍵的列表,並使用條件表示式來選擇用於刪除的鍵。在下面的示例中,我們只考慮了值是偶數的鍵(透過判斷除以2的餘數是否等於零)。

示例

 即時演示

# Given dictionary
ADict = {1: 'Mon', 2: 'Tue', 3: 'Wed',4:'Thu',5:'Fri'}

# Get keys with even value
for key in list(ADict):
if (key%2) == 0:
del ADict[key]

# New Dictionary
print(ADict)

輸出

執行以上程式碼將得到以下結果:

{1: 'Mon', 3: 'Wed', 5: 'Fri'}

使用items刪除

我們可以使用字典的items來刪除值,而不是鍵。但是,在選擇專案後,我們必須間接使用鍵來選擇要刪除的專案。

示例

 即時演示

# Given dictionary
ADict = {1: 'Mon', 2: 'Tue', 3: 'Wed',4:'Thu',5:'Fri'}

NewDict = []
# Get keys with even value
for key,val in ADict.items():
if val in('Tue','Fri'):
NewDict.append(key)

for i in NewDict:
del ADict[i]

# New Dictionary
print(ADict)

輸出

執行以上程式碼將得到以下結果:

{1: 'Mon', 3: 'Wed', 4: 'Thu'}

更新於:2020年5月4日

436 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告