2017-10-06 55 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')