如果变量等于列表中的任何值

2024-06-17 11:59:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在for循环中生成一个IF语句,如果变量等于列表中的任何值,我想触发它。

样本数据:

list = [variable1, variable2, variable3]

现在我有一个示例代码:

for k, v in result_dict.items():
   if k == 'varible1' or k == 'variable2' or k == 'variable2':

但问题是列表会越来越大,我不必为每个变量创建多个或语句。 我该怎么做?


Tags: or数据代码in示例列表forif
3条回答

你可能需要另一个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运算符的作用。做:

list = [variable1, variable2, variable3]
for k, v in result_dict.items():
   if k in list:

相关问题 更多 >