Python列表嵌套字典的時候,我如果要刪除列表中其中一個字典要如何操作?

names = [{"name": "張三", "age": 18}, {"name": "李四", "age": 19}]

name = input("請輸入你想要刪除的名字: ")

我現在想實現的是從鍵盤輸入一個名字,就可以把那個字典刪除,感覺沒思路啊。


是要這樣的結果嗎?


此問題屬於列表中刪除字典的問題,解決方案如下:先找到字典在列表中的位置,然後使用del刪除。

#名片管理系統
card_infor = []

#0.人機交互,接收鍵盤輸入的信息
def input_infor():
# num = int(input("請輸入相對應的數字:"))
pass

#1.函數:列印提示信息
def print_menu():
print("="*40)
print(" 名片管理系統 V0.03")
print("1.添加一個新的名字")
print("2.刪除一個名字")
print("3.修改一個名字")
print("4.查詢一個名字")
print("5.顯示所有名片")
print("6.退出系統")
print("="*40)

#函數:添加一個新名字
def add_new_name():
new_name = input("請輸入姓名:")
new_QQ = input("請輸入QQ:")
new_wechat = input("請輸入微信:")
new_addr = input("請輸入家庭地址:")

#建立一個字典,把信息保存到字典的相對應位置
new_infor = {}
new_infor[name] = new_name
new_infor[QQ] = new_QQ
new_infor[wechat] = new_wechat
new_infor[addr] = new_addr

#將字典添加到列表中
card_infor.append(new_infor)

#列印名片
print(card_infor)

#函數:刪除一個名字
def del_name():
del_names = input("請輸入要刪除的姓名:")
i = 0

for temp in card_infor:
i+=1
# print(i)
if del_names in temp[name]:
print("刪除的名片已找到")
break

#刪除列表中的字典
del card_infor[(i-1)]
print("刪除的名片已刪除")

#函數:修改一個名字
def modification_name():
pass

#函數:查詢一個名字
def find_name():
find_names = input("請輸入要查找的姓名:")
find_infors = 0

for temp in card_infor:
if find_names in temp[name]:
print("姓名:%s
QQ:%s
微信:%s
地址:%s
"%(temp[name],temp[QQ],temp[wechat],temp[addr]))
find_infors =1
break

if find_infors == 0:
print("查無此人")

#函數:顯示所有名片
def display_all_name():
for temp in card_infor:
print("姓名:%s
QQ:%s
微信:%s
地址:%s
"%(temp[name],temp[QQ],temp[wechat],temp[addr]))

#主函數
def main():

print_menu()
while True:
num = int(input("請輸入相對應的數字:"))
# input_infor()
if num == 1:
add_new_name()
elif num == 2:
del_name()
elif num == 3:
modification_name()
elif num == 4:
find_name()
elif num == 5:
display_all_name()
elif num == 6:
break
else:
print("您輸入的選項不正確!")

main()


推薦閱讀:

TAG:Python | Python入門 | Python教程 |