问题描述
我觉得这很简单。我有一个包含字符串的列表,如果它包含某个单词(触发词),则要打印索引。我可以获取它来拉索引,但是在列表中打印该索引的实际值时遇到了麻烦。
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')]