2017-04-24 82 views
0
candidates = ['abacus', 'ball', 'car'] 

for candidate in candidates: 
    if dict[candidate] == "true": 
     """next""" 
    else: 
     continue 
"""do something""" 

我在这里要做的是检查字典中是否存在术语,如果存在,请将控制流移到列表中的下一项候选人。我在使用next()时遇到问题。我如何去做这件事?如果条件符合,则列表中的下一项

+1

“next”是什么意思?如果它存在,你想要发生什么?去下一个候选人是“继续”会做的。 –

+0

'continue'已经移动到迭代中的下一个元素,不是吗?你想在if和else子句之间做什么不同? –

+1

你在寻找'continue'吗? –

回答

1

如果你想控制移动到下一个元素在列表中,如果在字典中存在的术语,你可以继续使用。

Python中的continue语句将控件返回到while循环的开始 。 continue语句拒绝当前循环中所有剩余的 语句,并将控件 移回到循环的顶部。

for candidate in candidates: 
    if dict.get(candidate) == "true": 
     continue 
    else: 
     """do something""" 

另外,如果你使用dict[candidate],那么如果该键不存在于字典,它给KeyError。因此,为了避免错误,检查字典中是否存在元素的更好方法是使用get函数。

dict.get(candidate) == "true" 
+0

因此,在这种情况下,如果条件返回“true”,那么将检查下一个候选条件是否为此条件,如果失败,则控制移动到else语句中?我以为我已经实施了这个确切的事情无济于事,但将再次尝试 – user3058703

+0

是的,你是对的。我想这就是你想要做的。如果条件为真,继续将停止当前迭代中的进一步执行,否则它将转到else部分。 – Charul

+0

作品 - 谢谢! – user3058703

0

基本上,如果当前列表值在字典中,你想要去列表的下一个迭代?如果是这样,用pass(不带引号)替换“”“next”“”。

1

注意,字典是保留字,所以用不同的名称,以避免出现问题

candidates = ['abacus', 'ball', 'car'] 
my_dictionary = {} 

for candidate in candidates: 
    if candidate not in my_dictionary: 
     """do something""" 
     break # exit the loop 
相关问题