2017-01-27 78 views
-2

我嵌套for循環,我認爲這使事情變得複雜了。 這裏是字典我有跳到下一個字典

dict1 = {'1': '##', '2': '##'} 

我通過這個字典循環和這裏是代碼

for key,value in dict1.items(): 
    ###some code ### 
     if ##condition is true move to next key in the for loop which is '2'## 
      dict1.next() 

我用dict1.next()。但是,這是引發錯誤 「字典」對象沒有屬性 '下一個'」

即使試圖dict1 [鍵] + = 1和dict1 [鍵] = dict1.setdefault(鍵,0)+ 1

我明白,當跳到字典中的下一個鍵時,我們必須引用鍵的索引來移動到下一個項目。但沒有運氣的任何事情,我不知道使用「繼續」將達到我的目的,因爲目前我只有一個值爲每個相應的鍵(「繼續」如果是這樣),但我想要使用此代碼,即使每鍵分別有多個值。如果對於關鍵字1及其第一個對應值,「If」條件成立,則下一次迭代應分別針對關鍵字2及其值。

對不起長故事

+2

歡迎來到Stack Overflow!您可以先[參觀](http://stackoverflow.com/tour)並學習[如何提出一個好問題](http://stackoverflow.com/help/how-to-ask)並創建一個[最小,完整和可驗證](http://stackoverflow.com/help/mcve)示例。這使我們更容易幫助你。 –

+0

由於封閉for循環,循環本身將移動到下一個元素。你所需要做的就是忽略你不想要的任何值。 –

回答

1

使用繼續有什麼問題?

dict1 = {'1': [1,4,7], '2': '##'} 

for key in dict1.keys(): 
    if key == "1": 
     continue 
    else: 
     print key, dict1[key] 

>>> '2 ##' 

你可以有以下的nexy鍵:

keys = dict1.keys() 
n = len(keys) 
for i in range(n): 
    thisKey = keys[i] 
    if some_condition(): 
     nextKey = keys[(i + 1) % n] 
     nextValue = dict1[nextKey] 
     print thisKey, nextValue 

你有鑰匙的列表,你遍歷鍵的長度。 如果您的條件屬實,您可以提取下一個鍵和值。

+0

你好。正如我所說,我不確定當「1」的「if」條件滿足時,如果「continue」能夠跳轉到下一個鍵(在我的例子中是'2'),考慮到我有多個每個鍵的值。 –

+0

每個鍵都有一個值..該值可以是對象,列表,字典基本上都是。如果你跳過鑰匙,你也會跳過他的價值。 @KrishnaChaitanya –

+0

是的,跳過它的價值對我來說也很好。只要條件對於該關鍵字'1'及其任何值都是正確的,就必須移至關鍵'2' –