首页 > 解决方案 > 同一个变量中超过 1 个单词的条件语句

问题描述

我正在尝试根据来自另一个变量的各种业务规则创建一个变量。请看下面的例子。当我只处理一个单词时,我需要使用以下代码作为条件:

  physical = ['light', 'sedentary', 'medium', 'heavy']

  def matcher(x):
      for i in physical:
          if i.lower() in x.lower():
             return i
          else:
             return 'other'

我的问题是当句子中有多个匹配的单词时,在这种特定情况下我想调用mix. 例如,如果一个句子中出现了多个单词,就像第一句话一样,那么“混合”

  Physical Demand                                          Result
    Light to medium with occasional heavy  levels           mix                        
    Light lifting                                           light
    Medium effort required when lifting                     medium

tks。

标签: pythonif-statementconditional

解决方案


您需要检查所有项目以返回mix,而不是仅检查一项后直接返回。接下来是一个可行的代码,仅供参考。

physical = ['light', 'sedentary', 'medium', 'heavy']

def matcher(x):
    l = [item for item in physical if item.lower() in x.lower()]
    length = len(l)

    if length == 0:
        return 'other'
    elif length == 1:
        return l[0]
    else:
        return 'mix'

print(matcher('Light to medium with occasional heavy  levels'))
print(matcher('Light'))
print(matcher('Medium'))
print(matcher('abcde'))

输出:

mix
light
medium
other

推荐阅读