【发布时间】:2013-01-18 17:29:47
【问题描述】:
如何使用列表推导轻松获取“匹配”列表元素?例如我有一个list,我正在寻找一个以某个字符串开头的元素。这很容易做到:
>>> lines = ['AHP Buildlife number', 'NIT-Version-Default-v0.16.0', 'E_release v2.3.14.0']
>>> [ x.strip() for x in lines if x.startswith('NIT-Version-Default') ]
['NIT-Version-Default-v0.16.0']
但是我怎样才能在if 语句中做同样的事情,以便匹配的列表元素可以用于进一步处理;像这样的东西:
>>> if [ x.strip() for x in lines if x.startswith('NSS-Checkin-Default') ]:
... ver = x.split('-')[-1].strip()
... print ver
因此,它返回 v0.16.0 作为版本号。这显然是行不通的,但希望你明白我想要做什么。知道怎么做吗?干杯!!
PS。欢迎您改进问题或标题。
【问题讨论】:
-
请注意,如果您以后不想使用该值,只需检查是否存在,最好的解决方案是
any()。