在if语句匹配的第n个位置使用列表项

时间:2019-03-24 08:33:14

标签: python python-3.x indexing list-comprehension

我有一个包含文本元素的列表。 说:

belowLayer

我想使用正则表达式匹配列表中所有出现的位置my_list = ['a', 'b', 're_match', 'd', 'line_to_extract_1', 'f', 'g', 're_match', 'i', 'line_to_extract_2', 'k'] ,并采用第re_match个元素存储在新列表中。我想使用列表推导来实现。

输出应如下所示:

i+2

我发现了new_list = ['line_to_extract_1', 'line_to_extract_2',...] 函数,但是不确定如何使用它(或者它是否可以达到目的)。

2 个答案:

答案 0 :(得分:2)

只要您可以保证在每个=IMPORTDATA("https://www.amfiindia.com/spages/NAVAll.txt") =INDEX(SPLIT(VLOOKUP(A2&"*",NAV!$A$1:$A$20501,1,false),";"),,5) 之后始终有一个可提取两个位置的项目,就可以使用此列表理解:

match_item

答案 1 :(得分:1)

我不清楚自己要问什么。如果您要询问enumerate函数的工作方式,则可以通过以下方式进行检查:

print(list(enumerate(your_list)))

或观看the docs

没有enumerate,就可以为您的任务提供解决方案,对我来说,如果只有索引或只有值而没有混合,则更容易阅读代码:

x = ['a', 'b', 're_match', 'd', 'line_to_extract_1', 'f', 'g', 're_match', 'i',
       'line_to_extract_2', 'k']
match = 're_match'
y = [x[i + 2] for i in range(len(x) - 2) if match == x[i]]