Skip to content

Python 709 詞典排序

Python TQC

題目說明:

請撰寫一程式,輸入一顏色詞典color_dict(以輸入鍵值”end”作為輸入結束點,詞典中將不包含鍵值”end”),再根據key值的字母由小到大排序並輸出。

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

Key: Green Yellow
Value:#ADFF2F
Key: Snow
Value:#FFFAFA
Key: Gold
Value:#FFD700
Key: Red
Value:#FF0000
Key: White
Value:#FFFFFF
Key: Green
Value:#008000
Key: Black
Value:#000000
Key: end
Black: #000000
Gold: #FFD700
Green: #008000
Green Yellow:#ADFF2F
Red: #FF0000
Snow:#FFFAFA
White: #FFFFFF


題目分析

  1. 問題分析:
    - 這個問題要求我們輸入一個詞典,鍵值為顏色的名稱,值為該顏色的16進制代碼。
    - 輸入以鍵值”end”作為輸入結束的標誌。
    - 接著需要根據詞典的鍵(顏色名稱)按照字母順序從小到大進行排序。
    - 最後將排序後的詞典鍵值對依次輸出。

  2. 解題思路:
    - 首先我們需要建立一個空詞典來儲存輸入的鍵值對。
    - 使用一個迴圈不斷接收使用者輸入的鍵值對,直到輸入”end”為止。
    - 將輸入的鍵值對存入之前建立的詞典中。
    - 使用排序函數對詞典的鍵進行排序,獲得排序後的鍵列表。
    - 遍歷排序後的鍵列表,從詞典中取出對應的值,格式化輸出鍵值對。

  3. 思考方向:
    - 如何建立空詞典並持續接收輸入直到輸入”end”?
    - 如何將輸入的鍵值對存入詞典中?
    - 如何對詞典的鍵進行排序?Python提供哪些函數可以做到這一點?
    - 如何格式化輸出鍵值對,使其符合題目要求?

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

Last update : 13 novembre 2024
Created : 13 novembre 2024

Comments

Comments