2017-01-16 57 views
0

我有一個以列表爲值的字典。現在我隨機從列表中選擇一個值,當值被選中時,必須刪除該值。所以他們不再使用,但關鍵和外在價值觀必須留下。在不刪除密鑰的情況下刪除一個dic的值

這不是我的代碼。簡化它來解釋它。

dic1 ={1:[[0,1],[1,1]],2:[[0,1],[1,1]]} 

for key,value in dic1.items(): 
    if key == 2: 
    # for example, I want to delete from key 2: list element [0,1] 
    # so key 1 : [0,1] stays 

回答

5

不循環,詞典都以避免O(n)循環:

dic1 ={1:[[0,1],[1,1]],2:[[0,1],[1,1]]} 

查閱字典的關鍵:你的價值的參考。既然你知道哪些數據裏面,您可以通過刪除第一個列表項:

dic1[2].pop(0) 

當然,你必須把它在一般情況下更安全地寫:

k = 2 
value = dic1.get(2,None) # returns None if key not found 
if isinstance(value,list) and value: # this is a list, and not empty 
    value.pop(0) 
else: 
    # error message 
    print("Warning: nothing done") 
+0

謝謝yust我需要什麼 – Belguimclub

+0

@Chris_Rands:完成。謝謝。 –

相關問題