【问题标题】:Python how to find exact match in a list and not just contained in a word within listPython如何在列表中找到完全匹配,而不仅仅是包含在列表中的单词中
【发布时间】:2018-04-10 05:46:48
【问题描述】:

我正在尝试在 [] 列表或文本文档列表中的单词列表中找到一个单词的完全匹配,每行用一个单词分隔。但是如果单词包含在单词列表中,使用“in”会返回 true。我正在寻找一个完全匹配的。例如在 python 2.7.12 中:

mylist = ['cathrine', 'joey', 'bobby', 'fredrick']

for names in mylist:
    if 'cat' in names:
        print 'Yes it is in list'

这将返回 true,但我希望它仅在完全匹配时才为 true。如果 'cathrine' 在 mylist 中,'cat' 不应返回 true。

并尝试使用“if 'cat' == names:' 似乎不起作用。

只有当我要查找的字符串与单词列表完全匹配,并且不包含在单词列表的单词中时,我将如何返回 true?

【问题讨论】:

  • 如果 mylist 中的 'cat' -- 似乎不起作用或找不到任何东西。我做错了吗?

标签: python


【解决方案1】:

你可以直接在列表中使用in。

例如:

mylist = ['cathrine', 'joey', 'bobby', 'fredrick']

if 'cat' in mylist:
    print 'Yes it is in list'
#Empty


if 'joey' in mylist:
    print 'Yes it is in list'
#Yes it is in list

【讨论】:

  • 谢谢,但我希望它只有在完全匹配时才返回 true。因此,如果里面有“凯瑟琳”,那么“猫”不应该返回 true。
  • Yes cat 在上面的例子中不会返回true
  • 好的,我正在从名称的文本文件中读取。我已经在原始文本文件(每个名称在一行)上尝试过,这似乎有效。我已经尝试转换文件...使用 open('mylist.txt', 'r') as infile: for names in infile: mylist.append(names) ....and using if 'cat' in mylist,如果我使用'cahtrine',它不会返回true。我错过了什么吗?
  • 文本中可能有一个尾随空格。使用mylist.append(names.strip())
  • 'cahtrine' 拼写错误?
【解决方案2】:

您可以将in 与if else 条件运算符一起使用

In [43]: mylist = ['cathrine', 'joey', 'bobby', 'fredrick']

In [44]: 'yes in list ' if 'cat' in mylist else 'not in list'
Out[44]: 'not in list'

【讨论】:

    【解决方案3】:

    @Rakesh已经给出了存档你任务的答案,这只是为了更正你的陈述。

     trying to use "if 'cat' == names:' does't seem to work
    

    实际上 'cat' == names 这会返回 false 问题是您缺少 else 部分来捕捉它

    mylist = ['cathrine', 'joey', 'bobby', 'fredrick']
    
    for names in mylist:
        if 'cat' == names:
            print ('Yes it is in list')
        else:
            print('not in list')
    

    【讨论】:

      【解决方案4】:

      您可以使用 '==' 代替 'in'

      mylist = ['cathrine', 'joey', 'bobby', 'fredrick']
      
      for names in mylist:
          if names =='cat' :
              print('Matched')
          else:
              print('Not Matched')
      

      我认为它会起作用!

      【讨论】:

        猜你喜欢
        • 2020-02-02
        • 2021-12-14
        • 2017-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多