Python - 同類鍵值列表元素的乘積


在給定的問題陳述中,我們必須計算給定字典中相同鍵值的乘積。因此,我們將透過在 Python 中實現程式碼來解決此問題。

理解問題

手頭的問題是使用 Python 對給定字典列表中相同鍵進行乘法運算。因此,我們將把字典列表作為輸入,並且此資料將包含鍵值對,其中鍵在字典中是相同的。因此,我們必須將相同鍵的相應值相乘。

上述問題的邏輯

為了解決上述問題,我們將在 Python 中實現簡單的邏輯。我們將迭代字典列表並儲存我們遇到的每個鍵的乘積。對於每個鍵,我們將提取鍵和值並更新對應值的乘積。如果我們第一次找到該鍵,那麼我們將為當前值初始化乘積。如果再次遇到此鍵,我們將把乘積與前一個值相乘。

演算法

  • 步驟 1 - 首先將空字典初始化為 multiply_dict。此字典將用於儲存每個鍵的乘積。

  • 步驟 2 - 之後,我們將遍歷給定輸入列表中的每個字典。

  • 步驟 3 - 然後,我們將使用每個字典的 items 方法遍歷鍵值對。

  • 步驟 4 - 在此步驟中,我們將對每個鍵值對執行某些過程。首先,我們將檢查鍵是否不存在於 multiply_dict 中,如果此條件為真,那麼我們將新增它並將其值初始化為當前值。

  • 步驟 5 - 接下來,我們將檢查另一個條件,如果鍵已存在於 multiply_dict 中,則將當前值與 multiply_dict 中的現有值相乘。

  • 步驟 6 - 遍歷字典後,multiply_dict 將包含給定字典中每個鍵的乘積。

示例

# Define function to multiply the same key values
def multiply_values(content):
   # Initialize empty dictionary
   multiply_dict = {}
   # Iterate over key-value pairs
   for key_value in content:
      for key, value in key_value.items():
         if key not in multiply_dict:
            multiply_dict[key] = value
         else:
            multiply_dict[key] *= value
      return multiply_dict

# Initialize the data
content = [
   {'Grape': 3, 'Peach': 5, 'Cherry': 2},
   {'Grape': 4, 'Peach': 4, 'Cherry': 5},
   {'Grape': 5, 'Peach': 2, 'Cherry': 3}
]

# Call the function
Output = multiply_values(content)

# Print the result
print(Output)

輸出

{'Grape': 3, 'Peach': 5, 'Cherry': 2}

複雜度

假設 n 是給定列表中字典的數量,m 是每個字典中鍵值對的平均數量,那麼計算列表元件中相同鍵值乘積的時間複雜度為 O(n * m)。造成這種複雜度的原因是我們遍歷了每個字典並執行了常數時間操作以獲取值的乘積。

結論

正如我們已經成功地實現了獲取給定列表中字典中相同鍵值的乘積的程式碼一樣。這是一種獲取所需結果的有效方法。

更新於: 2023年10月17日

53 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.