1. 程式人生 > 實用技巧 >學習字典操作例項,手動輸入多層字典操作(包括增加,進行下層,返回上層,刪除子節點)

學習字典操作例項,手動輸入多層字典操作(包括增加,進行下層,返回上層,刪除子節點)

"""
學習字典操作例項,手動輸入多層字典操作(包括增加,進行下層,返回上層,刪除子節點)
"""
DIC = {

}

TEMP = DIC
GO = True
LEV = []
while GO:
print("節點:", list(TEMP.keys()))
choce = input("q退出,b返回上層,i增加,c進入下層,d刪除節點: \n>>>>").strip(" ")
# choce = choce.strip(' ')
if choce.lower() == 'q': # 退回操作
GO = False
break
elif choce.lower() == 'b': #返回上層操作
TEMP = DIC #對TEMP進行重新賦值,避免在頂層時無法輸出
if LEV:
LEV.pop()
for x in LEV:
TEMP = TEMP[x] #迴圈設定節點深度
elif choce.lower() == 'i': #增加節點操作
x = input("節點名稱:").strip(" ") #用x來接受使用者輸入的節點名稱,並使用str.strip(' ')來去除輸入內容兩端的空格
if x in list(TEMP.keys()): #檢查節點是否存在
print("節點已存在,請重新輸入")
else:
TEMP[x] = {} #增加節點
elif choce.lower() == 'c': #進入下一層操作
c = input("節點名: ").strip(" ") #用x來接受使用者輸入的節點名稱,並使用str.strip(' ')來去除輸入內容兩端的空格
TEMP = TEMP[c] #使用TEMP來記錄當前所有節點
LEV.append(c) #使用LEV來記錄節點深度,以便返回上層操作
print("當前深底", LEV) #輸出當前節點深度,
elif choce.lower() == 'd': #刪除當前節點的位元組點
d = input("刪除的節點名稱: ").strip(' ')
del TEMP[d]
else:
print("錯誤,請重新輸入")