python - 获取包含给定子字符串的所有元素的索引
问题描述
我正在尝试获取与 中的某个条件匹配的所有元素的索引my_list
。
my_list = ['This is chapter 1', 'chapter 2 is here', 'Baseball Sport', 'Football Sport', 'chapter 13']
我想获取my_list
包含字符串的元素的所有索引'chapter'
。我已经尝试过列表推导,但我还是新手,所以没有成功。
search = 'Chapter'
for k in range(len(my_list)):
search_list = [i for i, search in enumerate(my_list)
if search.lower() in my_list[k]]
我可能在这里犯了一些无法识别的错误。我怎样才能得到我想要的指数结果?
search_list = [0, 1, 4]
解决方案
主要问题是您search
在列表理解中重新定义并且正在使用它的新定义。你想要的是这样的:
my_list = ['This is chapter 1', 'chapter 2 is here', 'Baseball Sport', 'Football Sport', 'chapter 13']
search = 'chapter'
results = [i for i, item in enumerate(my_list) if search in item]
旁注:
- 如果您有能力定义自己,那么将其定义为并每次都调用它
search
是没有意义的。从一开始就将其定义为。"Chapter"
.lower()
"chapter"
- 列表推导取代了显式的 for 循环。在这种情况下,两者兼有是错误的。您只需要在列表上循环一次。
enumerate
用于避免索引 (my_list[k]
)。您在这里使用是正确的enumerate
;所以使用它。
推荐阅读
- powershell - 从 Azure PowerShell 为 Azure 中的 SQL Server 数据库设置警报
- lisp - Lisp 循环让何时
- sql - 如何在日期字段上设置约束?
- kotlin - Kotlin 不是在 for 循环中打印项目,而是它们在内存中的位置?
- javascript - ValidationError:无效的配置对象。Webpack 已使用与 API 模式不匹配的配置对象进行初始化。Next.js
- javascript - 使用按钮 js 功能显示/隐藏 DIV
- c# - 在 C# 中删除 Json 属性中的空格
- javascript - 引导轮播在wordpress的主页中不起作用
- python - 列表中的某些元素有分隔符,需要分隔。然后需要将该元素的其他值复制到新行。建议?
- netsuite - 通过传递给它的参数搜索预定的脚本实例