Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python在考虑所有单词小写的列表中搜索匹配项_Python_String_List_Dictionary - Fatal编程技术网

Python在考虑所有单词小写的列表中搜索匹配项

Python在考虑所有单词小写的列表中搜索匹配项,python,string,list,dictionary,Python,String,List,Dictionary,我需要在python列表中搜索一个单词的匹配项。我必须首先将该单词和列表中的所有单词都转换为小写 def check_match(word,words_dict): for w in words_dict: if(word.lower()==w.lower()): return 1 return 0 这是它将得到的最好的结果。您不想将lower操作映射到words\u dict中的所有内容,因为您可能能够更早地确定匹配并退出循环,从而减少

我需要在python列表中搜索一个单词的匹配项。我必须首先将该单词和列表中的所有单词都转换为小写

def check_match(word,words_dict):
    for w in words_dict:
        if(word.lower()==w.lower()):
            return 1
    return 0
这是它将得到的最好的结果。您不想将
lower
操作映射到
words\u dict
中的所有内容,因为您可能能够更早地确定匹配并退出循环,从而减少工作量

例如,假设您匹配了
words\u dict
的第一个元素:您不想浪费时间来构建类似
[w.lower()For w in words\u dict]
的东西,这样您就可以使用
in
来表示您正在寻找的条件

我唯一真正做的调整是预先计算一次
word.lower()
,这样就不会在循环的每一次过程中都这样做

另外请注意,在Python中,如果将某个内容命名为
words\u dict
,而实际上它是一个
列表
,则会产生误导。为什么不把它称为“单词”?

一种蟒蛇式的方式:

def check_match(word, words_list):    
   return any( i for i in words_list if i.lower() == word.lower() )
要返回奇异的
1
0

def check_match(word, words_list):    
   found = any( i for i in words_list if i.lower() == word.lower() )
   return 1 if found else 0

如果您想要好看的东西,并且真的不在乎性能,您可以尝试:

def check_match(word, words_dict):
    return word.lower in [w.lower for w in words_dict]
或:


如果1和0很重要,可以执行
返回int(…)
int(在调用函数时检查匹配(…)

为什么不在操作数中使用
?你的问题是什么?
如果word.lower()==w.lower():
另外,请注意Python有布尔值,为什么
返回1
而不是
返回True
def check_match(word, words_dict):
    return word.lower in [w.lower for w in words_dict]
def check_match(word, words_dict):
    return word.lower in map(lower, words_dict)