Skip to content

Python 708 詞典合併

Python TQC

題目說明:

請撰寫一程式,自行輸入兩個詞典(以輸入鍵值”end”作為輸入結束點,詞典中將不包含鍵值”end”),將此兩詞典合併,並根據key值字母由小到大排序輸出,如有重複key值,後輸入的key值將覆蓋前一key值。

輸入與輸出會交雜如下,輸出的部份以粗體字表示

Create dict1:
Key: a
Value: apple
Key: b
Value: banana
Key: d
Value: durian
Key: end
Create dict2:
Key: c
Value: cat
Key: e
Value: elephant
Key: end
a: apple
b: banana
c: cat
d: durian
e: elephant


題目分析

這個問題要求我們編寫一個程式,讓用戶輸入兩個詞典,然後將這兩個詞典合併,並根據鍵值的字母由小到大排序後輸出。根據問題描述,我們可以按照以下步驟思考和解決問題:

  1. 問題分析
    - 理解問題要求:首先,我們需要理解題目要求,即讓用戶自行輸入兩個詞典,然後將它們合併並排序後輸出。
    - 確定輸入和輸出:輸入包括用戶自行輸入的兩個詞典,輸出則為合併後並按鍵值排序的詞典。

  2. 解題思路
    - 使用一個while迴圈來接收用戶的輸入,直到用戶輸入”end”為止,建立詞典。
    - 將兩個詞典進行合併,可以使用update()方法將第二個詞典合併到第一個詞典中。
    - 使用sorted()函數對詞典的鍵值進行排序,並將排序後的詞典輸出。

  3. 思考方向
    - 如何處理用戶輸入:使用迴圈來逐一接收用戶輸入的鍵值和對應的值,並在輸入”end”後停止。
    - 如何進行詞典合併:使用update()方法將第二個詞典合併到第一個詞典中。
    - 如何對詞典的鍵值進行排序:使用sorted()函數對詞典的items()進行排序,並將排序後的詞典輸出。

Solution
def compute():
    D = {}
    while True:
        key = input("Key: ")
        if(key=='end'):
            return D
        else:
            D[key] = input("Value: ")
print("Create dict1:")
d1 = compute()
print("Create dict2:")
d2 = compute()
d1.update(d2)
d3 = dict(sorted(d1.items()))
for i in d3:
    print("{}: {}".format(i, d3[i]))

Warning

注意使用dictionary排序時的寫法dict(sorted(d1.items()))


Last update : 13 novembre 2024
Created : 13 novembre 2024

Comments

Comments