根据子字符串打印条件索引值

问题描述

我觉得这很简单。我有一个包含字符串的列表,如果它包含某个单词(触发词),则要打印索引。我可以获取它来拉索引,但是在列表中打印该索引的实际值时遇到了麻烦。

 list = [' test',' tests triggerword',' test3',' 12345']

 x = [list.index(i) for i in list if 'triggerword' in i]
 print(x)
 [1]

我要打印tests triggerword

解决方法

尝试:

my_list = [' test',' tests triggerword',' test3','triggerword',' 12345']

x = [[my_list.index(i),i] for i in my_list if 'triggerword' in i]

print(x)

>>> [[1,' tests triggerword'],[3,'triggerword']]

顺便说一句,list应该保留为python函数。将其用作变量不是一个好主意。因此,我将其更改为my_list或类似名称。否则,您可能会遇到类似以下错误:

print(list(list))
>>> TypeError: 'list' object is not callable
,

您可以在遍历数组时使用enumerate获取索引,然后返回索引和实际元素的元组。见下文:

>>> L = [' test',' 12345']
>>> [(i,x) for i,x in enumerate(L) if 'triggerword' in x]
[(1,' tests triggerword')]

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...