2024-06-17 11:59:45 发布
网友
我想在for循环中生成一个IF语句,如果变量等于列表中的任何值,我想触发它。
样本数据:
list = [variable1, variable2, variable3]
现在我有一个示例代码:
for k, v in result_dict.items(): if k == 'varible1' or k == 'variable2' or k == 'variable2':
但问题是列表会越来越大,我不必为每个变量创建多个或语句。 我该怎么做?
你可能需要另一个FOR循环。
for k, v in result_dict.items(): for i in list: if i==k:
另一种方法是使用集合:
>>> 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()。
in
set()
这就是in运算符的作用。做:
list = [variable1, variable2, variable3] for k, v in result_dict.items(): if k in list:
你可能需要另一个FOR循环。
另一种方法是使用集合:
然后您可以迭代这些键:
这应该比在列表中重复调用
in
更有效。调用列表或字典中最短的set()
。这就是
in
运算符的作用。做:相关问题 更多 >
编程相关推荐