我想在for循环中创建一个IF语句,如果变量等于列表中的任何值,我希望它被触发。
示例数据:
list = [variable1, variable2, variable3]
现在我有这个示例代码:
for k, v in result_dict.items():
if k == 'varible1' or k == 'variable2' or k == 'variable2':
但问题是列表会变大,我不必为每个变量创建多个OR语句。 我怎么能这样做?
答案 0 :(得分:6)
这是in
运算符的用途。做:
list = [variable1, variable2, variable3]
for k, v in result_dict.items():
if k in list:
答案 1 :(得分:1)
另一种方法是使用套装:
>>> l = ['a', 'b', 'c']
>>> d = {'a': 1, 'b': 2, 'c': 'three', 'd': 4, 'e': 5, 'f': 6}
>>> keys = set(l).intersection(d.keys())
>>> keys
set(['a', 'c', 'b'])
然后你可以迭代这些键:
for k in set(l).intersection(d.keys()):
do_something(d[k])
这比在列表上重复调用in
更有效。在最短的列表或字典上调用set()
。
答案 2 :(得分:0)
您可能需要另一个FOR循环。
for k, v in result_dict.items():
for i in list:
if i==k: