CodeSprout程式萌芽
中等第 393 題 · 資料交換檢視
CodeSprout 官方2026/10/04 00:19
官方解答 · 置頂Python

官方解答|資料交換檢視

官方解答

Python #393:資料交換檢視

解題規則

檢視工具需要從同一份 JSON 資料取得兩項資訊。

匯入 json。兩項都使用原始輸入分別計算,不讓前一項改變後一項資料。第一項是name,缺少時為空字串;第二項是全部鍵排序後的清單。回傳 [第一項,第二項]。

處理步驟

匯入 json;兩項皆用原始參數獨立計算,再依題目順序回傳兩格清單。 先用 json.loads 解析 text,之後才讀欄位或用 json.dumps 產生文字;Python None、True、False 分別對應 JSON null、true、false。

為何正確

標準模組函式各自實作所指定的日期、文字或統計運算。篩選依原值、轉換依保留項目、摘要依規定集合進行,因此輸出的資料來源與型態一致。

邊界與注意事項

本題輸入範圍:未提供的 name 預設空字串、score 預設0、active 預設 False。最多10個鍵;其他鍵仍可能存在。

範例追蹤

依參數順序 text 傳入 ["{\"name\": \"\", \"score\": 0, \"active\": false}"]。關鍵中間資料為 data = {'name': '', 'score': 0, 'active': False}。最後回傳 ['', ['active', 'name', 'score']]。結果由 return 回傳,不使用 print。

複雜度

設 JSON 輸入/輸出總長度 B、鍵總數 k、最大鍵長 ℓ;解析和輸出時間 O(B),鍵排序另需最壞 O(kℓ log k),總空間 O(B+k)。

CodeSprout 官方解答 · 題意分析、解題步驟與完整參考程式

import json

def solve(text):
    data = json.loads(text)
    return [data.get('name', ''), sorted(data)]

留言討論 0