首頁 >後端開發 >Python教學 >如何使用字典推導式依條件過濾 Python 字典?

如何使用字典推導式依條件過濾 Python 字典?

Barbara Streisand
Barbara Streisand原創
2024-11-13 02:27:02790瀏覽

How Can I Filter Python Dictionaries Based on Conditions Using Dict Comprehensions?

使用字典推導式依照條件過濾字典

給定一個有鍵值對的字典,通常會依照條件過濾掉特定項目在某些標準上。 Python 字典提供了多種過濾方法,包括使用理解技術。

字典理解方法

過濾字典的一個優雅的解決方案是透過字典理解。此語法允許您透過將條件應用於原始字典中的每個項目來建立新字典。產生的字典將僅包含滿足指定條件的鍵和值。

例如,過濾包含點座標('x','y')的字典(點)並選擇那些值小於5 對於'x' 和'y',您可以使用以下程式碼:

{k: v for k, v in points.items() if v[0] < 5 and v[1] < 5}

在2.7 之前的Python 版本中,您可以使用iteritems() 而不是items():

{k: v for k, v in points.iteritems() if v[0] < 5 and v[1] < 5}

使用列表推導式進行項目過濾

雖然字典推導式提供了一種簡潔的方法,但您也可以使用列表推導式來過濾項目。但是,此方法需要額外的步驟來建構新字典:

points_small = {}
for item in [i for i in points.items() if i[1][0] < 5 and i[1][1] < 5]:
    points_small[item[0]] = item[1]

此程式碼首先建立滿足條件的項目列表,然後透過迭代該列表來建構新字典 (points_small)。雖然不如使用字典理解那麼有效,但當在創建新字典之前需要進一步操作過濾的項目時,它會很有用。

以上是如何使用字典推導式依條件過濾 Python 字典?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn