在 Python 中使用自定義值列表初始化字典


字典是透過儲存鍵值對來定義的,而字典中的自定義值列表意味著與所有鍵元素關聯的列表可以根據條件進行修改或更改。這為程式提供了一種高效的方法,使用者可以在列表中新增、修改或刪除元素以滿足需求。在 Python 中,我們有一些內建函式 - range()、len()、zip()、dict() 和 enumerate() 可以用來初始化帶有自定義值列表的字典。

語法

以下語法在示例中使用 -

range()

內建函式 range() 透過根據給定的長度返回數字序列來定義。

len()

內建函式 len() 透過返回長度物件來定義。

zip()

zip() 是 Python 中一個內建函式,可用於迭代任意數量的引數,例如列表、元組、字串等。

dict()

dict() 是 Python 中一個內建函式,用於建立字典。此字典收集帶有元素的特定鍵。

enumerate()

內建函式 enumerate() 透過迭代元素序列並跟蹤特定索引位置來工作。

使用 for 迴圈

該程式在 for 迴圈中使用內建函式 len() 和 range() 來迭代鍵和值列表。使用此過程,字典設定自定義值列表。

示例

在以下示例中,我們將從初始化兩個不同的列表開始程式 - 字典的鍵和值。然後在變數 res 中使用空字典來儲存結果(字典形式)。接下來,使用 for 迴圈迭代程式的第一個列表,並將所有元素設定為鍵。現在,使用賦值運算子(即 =),它將第二個列表設定為字典中的值。最後,我們藉助名為 res 的變數列印結果。

k = ['P', 'Q', 'R', 'S', 'T']
v = [11, 92, 53, 94, 67]
res = {}
for i in range(len(k)):
    res[k[i]] = [v[i]]
print("Dictionary with custom value list in Python:\n", res)

輸出

 Dictionary with custom value list in Python:
 {'P': [11], 'Q': [92], 'R': [53], 'S': [94], 'T': [67]}

使用 zip() 函式

該程式使用兩個內建函式 dict() 和 zip() 來初始化帶有自定義值列表的字典。

示例

在以下示例中,開始初始化兩個變數 - keys 和 values,它們將以列表的形式儲存元素。接下來,在 dict() 函式內部使用 zip() 函式,該函式接受兩個引數 - k(設定鍵)和 v(變數 i 迭代以設定特定鍵的值)。所有這些過程都儲存在變數 res 中。最後,我們藉助變數 res 列印結果。

k = ['M', 'N', 'O']
v = [100, 200, 300]
res = dict(zip(k, [[i] for i in v]))
print("The Custom value in the form of a list:\n", res)

輸出

 The Custom value in the form of a list:
 {'M': [100], 'N': [200], 'O': [300]}

使用字典

該程式使用內建函式 len() 和 range() 來計算給定列表的特定長度,並透過給定元素的順序對列表進行排序以設定範圍。

示例

在以下示例中,我們將開始在變數 Subject 和 Score 中分別儲存兩個列表。然後應用字典(即 {}),使用 for 迴圈計算特定鍵元素與值對,並將其儲存在變數 res 中。接下來,藉助變數 res 顯示程式輸出。

Subject = ['Math', 'English', 'Hindi', 'Science']
Score = [95, 78, 82, 65]
res = {Subject[i]: [Score[i]] for i in range(len(Subject))}
print("Subject with a score:\n", res)

輸出

 Subject with a score:
 {'Math': [95], 'English': [78], 'Hindi': [82], 'Science': [65]}

使用 enumerate() 函式

該程式在 enumerate() 函式內部使用內建函式 zip(),它跟蹤特定迭代以初始化帶有自定義值列表的字典。

示例

在以下示例中,開始程式初始化兩個變數 - person(設定姓名列表)和 age(設定人員的年齡)。在變數 res 中使用字典推導式將計算字典的特定鍵值對並顯示結果。

person = ['John', 'Mark', 'Jonathan', 'Sam', 'Karl']
age = [18, 26, 22, 24, 33]
res = {person: [age] for i, (person, age) in enumerate(zip(person, age))}
print("Person name with age:\n",res)

輸出

Person name with age: 
{'John': [18], 'Mark': [26], 'Jonathan': [22], 'Sam': [24], 'Karl': [33]}

結論

我們討論了使用自定義值列表解決字典初始化的不同方法。字典推導式是基於特定條件迭代具有鍵值對的物件的最佳方法。字典的一個真實示例可以在任何書籍的末尾找到,其中同時提到了主題和頁碼。

更新於: 2023年8月14日

303 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告