【问题标题】:Python Return case insensitive string from a list, if it contains case insensitive substringPython从列表中返回不区分大小写的字符串,如果它包含不区分大小写的子字符串
【发布时间】:2021-11-04 19:36:19
【问题描述】:

如果 list 包含不区分大小写的 substring,我如何返回不区分大小写的 string?返回的字符串应该不区分大小写

我能够从列表中返回字符串,但我使用的是小写方法。我想在不修改的情况下恢复到原来的状态

entriesList = ['CSS', 'Django', 'Git', 'HTML', 'Python']

substring = "g"

def substringSearch(substring, entriesList):
  return [string for string in (string.casefold() for string in entriesList) if substring in string] 


print(substringSearch(substring, entriesList))

结果:

['django', 'git']

我想得到什么:

['Django', 'Git']

【问题讨论】:

  • 括号中的理解部分会更改您放置在最终列表中的字符串。只需在理解结束时将条件折叠起来即可。

标签: python string list substring


【解决方案1】:

您可以在理解测试中使用lower()casefold()

[string for string in entriesList if substring in string.casefold()]

您不需要为此制作新的生成器。这会给你:

entriesList = ['CSS', 'Django', 'Git', 'HTML', 'Python']

substring = "g"

def substringSearch(substring, entriesList):
      return [string for string in entriesList if substring in string.casefold()] 


print(substringSearch(substring, entriesList))

# ['Django', 'Git'] 

【讨论】:

  • 谢谢!完美解决了问题
猜你喜欢
  • 2021-12-06
  • 1970-01-01
  • 2022-11-22
  • 1970-01-01
  • 2016-01-26
  • 2013-11-05
  • 1970-01-01
  • 2014-07-07
  • 1970-01-01
相关资源
最近更新 更多