# 7. 自行輸入兩個字典,以輸入值end作為結束,將這兩個字典合併,根據key值字母,由小到大排序輸出,如有重複key值,後輸入的key值覆蓋前面的key值。
建議 原因
把 enumerate 和 sorted() 輸出格式分開處理 不混淆順序與排序
增加 print() 的語意提示 使用者更容易理解輸出內容
補上合併時提示哪些 key 被覆蓋(進階選配) 更清楚合併的影響(可選)
# 2025/04/21-21:00
# 定義輸入函式
def keyin(dictA, label="字典"):
print(f"請輸入{label}的鍵與值,輸入 'end' 結束:")
while True:
k = input("請輸入鍵:")
if k == 'end':
break
v = input("請輸入值:")
dictA[k] = v
# 建立兩個字典
dict1 = {}
dict2 = {}
# 輸入兩份字典
keyin(dict1, "第一個字典")
keyin(dict2, "第二個字典")
# 合併(dict2 覆蓋 dict1)
dict1.update(dict2)
# 顯示合併後結果(原順序)
print("\n📝 合併後的字典內容(不排序):")
for idx, key in enumerate(dict1, start=1):
print(f"{idx}. {key}: {dict1[key]}")
# 顯示排序後的結果(依 key 排序)
print("\n📚 排序後的字典內容(依 key 字母排序):")
for k, v in sorted(dict1.items()):
print(f"{k:>10} : {v}")
請輸入第一個字典的鍵與值,輸入 'end' 結束:
請輸入鍵:red
請輸入值:#f00
請輸入鍵:blue
請輸入值:#00f
請輸入鍵:end
請輸入第二個字典的鍵與值,輸入 'end' 結束:
請輸入鍵:blue
請輸入值:#0000ff
請輸入鍵:green
請輸入值:#0f0
請輸入鍵:end
📝 合併後的字典內容(不排序):
1. red: #f00
2. blue: #0000ff
3. green: #0f0
📚 排序後的字典內容(依 key 字母排序):
blue : #0000ff
green : #0f0
red : #f00