不区分大小写的二维列表

时间:2016-12-16 22:39:33

标签: python list path itertools

我需要搜索短语列表“ss”。

问题是,它可以以任何方式大写。

使用普通列表,我知道我可以创建一个for循环,并使用str.lower()

对于itertools来说,它不那么简单。没有.lower属性。 这是迄今为止的代码:

return(ss in (itertools.chain.from_iterable(result))

是否有人知道我可以在忽略案例时搜索此内容的方式?

1 个答案:

答案 0 :(得分:0)

在这种情况下,您可以使用any()

my_ss_list = ["ss", "superseded"]
chained_list = [word.lower() for word in itertools.chain.from_iterable(result)] 
#                    ^ convert all the words to lower case

any(ss in chained_list for ss in my_ss_list)
# returns `True`/`False` based on the occurrence of any of the item
# of `my_ss_list` in `chained_list`

或者,您可以明确地检查每个单词而不使用任何:

"ss" in chained_list or "superseded" in chained_list