查找列表中文本的完全匹配

时间:2020-06-20 10:18:26

标签: python

我想检查列表中文本是否完全匹配。

lst = ["Hi my name is ", "apple "]
new_lst = [t.strip() for t in lst]
text = input("text: ").lower()
if text in new_lst:
    print("True")
else:
    print("False")

但是当我输入hi my name is

我得到false而不是true
我该如何解决?

4 个答案:

答案 0 :(得分:3)

@timgeb暗示,在Python中,字符串相等性检查区分大小写。

对输入和数据进行规范化以确保不区分大小写是很平常的事。在您的代码中,由于您正在处理lst的每个元素以删除多余的空格,因此也可以将lst中的文本规范化为小写也很简单。

lst = ["Hi my name is ", "apple "]
new_lst = [t.strip().lower() for t in lst]  # using method chaining
                                            # to lowercase the stripped text
                                            # by applying .lower()

text = input("text: ").lower()
if text in new_lst:
    print("True")
else:
    print("False")

答案 1 :(得分:0)

尝试

<div class='product'>
    <div class='content'>
        <input name='txtName[]' class='txtName' type='text' value=''>
     </div>
                                  
                                
      <div class='chooseProduct'>
          <div class='attributes'>
              <div class='materials' id='".rand()."'>
                  <div class='text'>Material:</div>
                  <select class='materials-option' name='txtMaterial[]' onChange='getMaterial(this, $(this).parent().siblings());'>
                     <option value='0' selected disabled>Choose material</option> 
                     <option value='".$aMaterial['material_id']."' id='".$aMaterial['material_id']."'>".$aMaterial['material_name']."</option>
                   </select>
               </div>

               <div class='sizes' id='".rand()."'>
                  <div class='text'>Size:</div>
                  <select class='size-option' name='txtSize' onChange='getSize(this);'>
                       <option value='0' selected disabled>Choose size</option>
                       <option value='".$aSize['size_id']."' id='".$aSize['size_id']."'>".$aSize['size_name']."</option>
                  </select>
               </div>
          </div>
      </div>
 </div>

答案 2 :(得分:0)

您可以尝试

lst = ["Hi my name is ", "apple "]
new_lst = [t.strip().lower() for t in lst]
text = input("text: ").lower()
print("True" if text.lower() in new_lst else "False")

此代码会将第一个列表中的所有字符都更改为小写,并将输入文本进行小写比较,这样您将获得一个匹配项。

答案 3 :(得分:0)

您可以在进行比较时直接剥离和小写:

lst = ["Hi my name is ", "apple "]
text = input("text: ").lower()
if text in [e.strip().lower() for e in lst]:
    print("True")
else:
    print("False")