官方解答|資料清理回報
官方解答
Python #325:資料清理回報
解題規則
資料工具會換算符合條件的項目,並列出其餘項目的代號供核對。
檢查每個鍵值對是否符合「所有項目」。符合者保留原鍵,將值改成[反向的鍵文字,原值];不符合者只記錄鍵名。回傳 [轉換後字典,被排除的鍵清單];排除鍵按Python字串順序排序,原字典不可修改。
處理步驟
符合條件的鍵寫入 result,值按指定規則轉換;不符合者把原鍵加入 excluded。最後只排序 excluded,回傳 [result,excluded]。
為何正確
每個鍵值或紀錄都按指定規則處理;篩選、轉換、分組或讀值各自使用規定的來源。排序只作用於題目要求的輸出,原字典與組內紀錄順序保持不變。
邊界與注意事項
本題輸入範圍:最多10個鍵;鍵只含ASCII字元且長度0~20;值為 -100~100。需要排序時依Python字串排序。 除題目指定的篩選或移除外,保留原資料的重複項與順序;使用切片或明確判斷安全處理允許的空資料。
範例追蹤
依參數順序 data 傳入 [{"red":3,"blue":-2,"green":5}]。關鍵中間資料為 result = {'red': ['der', 3], 'blue': ['eulb', -2], 'green': ['neerg', 5]};excluded = [];key = 'green';value = 5。最後回傳 [{'red': ['der', 3], 'blue': ['eulb', -2], 'green': ['neerg', 5]}, []]。結果由 return 回傳,不使用 print。
複雜度
設項目數 n、最大鍵長 L;逐筆處理加上輸出排序最壞時間 O(nL log n),保存分組、歷史和結果最壞需要 O(nL) 空間。
CodeSprout 官方解答 · 題意分析、解題步驟與完整參考程式
def solve(data):
result = {}
excluded = []
for key, value in data.items():
if True:
result[key] = [key[::-1], value]
else:
excluded.append(key)
return [result, sorted(excluded)]
留言討論 0
登入 後就能留言,一起討論不同的寫法。