如何从字典列表中删除字典?

时间:2017-10-06 12:52:31

标签: python dictionary

如何从字典列表中删除字典?我试过了:

if data == []:
        print("No questions saved")
    else:
        while True:
            myDeletenumber = input("Which question do you want to delete?")
            try:
                myDeletenumber = int(myDeletenumber)
                myDeletenumber -= 1
                data.pop(myDeletenumber)
                break
            except ValueError:
                print('Not a number!')
                continue   

在这种情况下,data是词典列表

4 个答案:

答案 0 :(得分:1)

更简单的方法可能是使用del data[myDeleteNumber]

答案 1 :(得分:1)

作为替代方案,如果您的数据结构很大,您可以考虑分配None而不是从中间弹出。

myDeletenumber = input("Which question do you want to delete?")

try:
    myDeletenumber = int(myDeletenumber)
    myDeletenumber -= 1
    data[myDeletenumber] = None
    break        # <-- we'll assume that this snippet is inside a loop here...
except ValueError:
    print('Not a number!')
    continue

这会阻止放置在已删除元素之后的整个元素的副本,并避免更改元素所在的索引(这似乎是用户在当前情况下需要操作数据的重要知识)< / p>

答案 2 :(得分:0)

它是data.pop(myDeletenumber),带括号,而不是方括号。

答案 3 :(得分:0)

没有办法做到这一点,采取良好的方法

myDeletenumber = input("Which question do you want to delete?")
try:
    del data[int(myDeletenumber)-1]
except KeyError:
    print ('No number exist')

你可以试试这个:

try:
    data.pop(int(myDeletenumber)-1)
except KeyError:
    print ('No number exist')