2017-10-06 468 views
-5

如何从字典列表中删除字典?我曾尝试:如何从字典列表中删除字典?

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是字典

+1

你有错误吗? – Steampunkery

+0

你的问题是什么?我没有运行它,但这段代码看起来很好。 – Neo

+1

你在'data.pop'行有一个语法错误。 – Cfreak

回答

0

这是data.pop(myDeletenumber)的名单,括号,而不是方括号。

1

更简单的方法来做到这一点可能是使用del data[myDeleteNumber]

1

作为替代方案,如果你的数据结构是大的,你可能会考虑将无而不是从它的中间弹出。

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 

防止放置在删除的元素后的元件的整体的一个副本,并且避免了改变,这似乎是用户需要操纵的数据重要的知识在其中元素驻留在指数(目前的情况下)

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')