我做了一些轻松的搜索,但没有提出任何可靠的内容 - 完全愿意删除它,如果它是重复的。
我试图更好地理解lambda函数,并且我非常确定我可以使用它们来减少for循环:
import re
leest = ["one", "two", "three", "four"]
x = ""
for i in leest:
if re.search("th.*e", i):
x = i
print "yay " + x + "!"
我想要的只是取出匹配的术语并在函数中使用它。
我一直在查看列表理解和地图,但这似乎是为了完成工作,例如将项目添加到列表或处理它们。
答案 0 :(得分:2)
您可以使用next
和生成器表达式:
x = next(s for s in leest if re.search("th.*e", s))
如果找不到匹配项,则会引发StopIteration
。如果您要默认为""
,则可以将默认值传递给next
:
x = next((s for s in leest if re.search("th.*e", s)), "")