【问题标题】:Case insenstive search of 2D list不区分大小写的二维列表搜索
【发布时间】:2016-12-16 22:39:33
【问题描述】:

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

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

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

对于 itertools,它就不那么简单了。没有 .lower 属性。 到目前为止的代码如下:

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

有人知道我可以在忽略大小写的情况下进行搜索吗?

【问题讨论】:

  • "ss" or "superseded" 只会选择'ss';没有做你认为的事情
  • 好的,感谢您发现该错误。你能提供什么建议吗?

标签: python list path itertools


【解决方案1】:

在这种情况下,您可以将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`

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

"ss" in chained_list or "superseded" in chained_list

【讨论】:

  • 感谢 Moinuddin,chained_list 方法成功了。我想我看不到森林的树木!也感谢 ss 列表,该错误可能会在以后引起问题。 :)
猜你喜欢
  • 2011-04-26
  • 1970-01-01
  • 1970-01-01
  • 2010-09-15
  • 1970-01-01
  • 2014-07-07
  • 2013-09-26
  • 2023-03-20
  • 1970-01-01
相关资源
最近更新 更多