2016-07-21 69 views
-3

我在Python中有一個字典,我使用一個帶有四個元素的密鑰將一個元素分配給一個數組。我想通過遍歷我的已排序字典來繪製我的數組,但我想忽略循環中的一個鍵。我的代碼如下所示:在Python中循環訪問經過排序的字典時忽略密鑰

key = (process, temp, board, chip) 

    #Do some stuff in a loop 

for key in sorted(svmDict): 
    #plot some things but don't sort with the variable chip 

我發現了一些文章刪除特定的關鍵,但在我的情況下芯片實際上是一個變量,我刪除每個鍵看起來繁瑣和不必要的可能性。

+0

我試過了pop以及下面的忽略列表建議。芯片再次是一個變量,這就是爲什麼我有一個問題,如果我想刪除一個單一的項目,我知道是在它的工作列表。 – Kevin

+0

@ rbierman的答案爲什麼不適合你? – Nicarus

+0

我不確定,在我的數據集和三個過程變量中有15個芯片變量,我使用的所有當前數據都是相同的溫度和電路板。如果我忽略芯片變量,我應該輸出3個圖表,但是當我運行腳本時,仍然會得到15個圖表。 – Kevin

回答

0

如果你不擔心速度,我會檢查你是否在循環中的可接受的關鍵。你可以直接檢查一個你想跳過的值,或者製作一個你想跳過的值列表

ignore_list = [chip] 
for key in sorted(svmDict): 
    if key not in ignore_list: 
     #do the thing 
+1

如果你使用'set'代替它的'O(1)' –

+0

不幸的是,這沒有奏效。 – Kevin

+1

@JoranBeasley你的意思是'ignore_list'應該是一個'set',以便在其中搜索'key'是'O(1)'? – mitoRibo