我正在尝试推广用于分析三种特定植物的python脚本,以便能够分析任何种类的物种。我有一段代码:
dump=open('dump')
for i in dump:
if re.match('CON|VEN|PLE',i):
print i
我想说:
dump=open('dump')
list = ['CON','PLE','VEN']
for i in dump:
if re.match('any item from my list',i): # How can I ask for item from a list that match?
print i
因为我必须多次使用来自不同列表的许多不同ID重现此代码。
答案 0 :(得分:4)
i
是您文件中的一行,因此为了清晰起见,我将其称为line
if set(line.split()).intersection(list_of_words)
如果你真的想用正则表达式
if re.find("|".join(sorted(list_of_words,key=len,reverse=True)),line)
应该有用......
答案 1 :(得分:2)
你可以把它转过来 - 而不是re.match(any...)
做:
if any(re.match(item, i) for item in lst):
请注意,list
是一个错误的变量名称,因为它会影响内置函数。