我希望匹配列表中的项目并将该项目放入变量.下面是我到目前为止所做的,但目前我不知道如何创建正则表达式我需要匹配只有1项,我不知道这是否是最好的方法.我试图将列表中的项目与"/ site-packages"匹配到最后.
测试数据(站点输出)
['/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages', '/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/site-python', '/Library/Python/2.7/site-packages']
Run Code Online (Sandbox Code Playgroud)
码
import site
import re
sites = site.getsitepackages()
print sites
site = re.compile('*/site-packages')
for item in sites:
m = site.search(item)
if m:
print m
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您还可以in在列表推导中使用字符串运算符
m = [i for i in sites if r'/site-packages' in i]
Run Code Online (Sandbox Code Playgroud)
同样你可以使用 endswith
m = [i for i in sites if i.endswith(r'/site-packages')]
Run Code Online (Sandbox Code Playgroud)
编辑
为了获得列表理解执行后的最小元素(按长度),您可以这样做
min(m, key=len)
Run Code Online (Sandbox Code Playgroud)