我得到的清单如下:
[Margaret, Peter, Julia-noCP-L,Parker-CP-T, Jessica, Monica-CP-T, Mark, Peter-noCP]
我要获取字符串中仅包含CP的或对象:
['Parker-CP-T', 'Monica-CP-T']
我是这样做的:
headers = ['Margaret', 'Peter', 'Julia-noCP-L', 'Parker-CP-T', 'Jessica', 'Monica-CP-T', 'Mark, Peter-noCP']
headers_CPs = []
for i in headers:
if "CP" in i:
headers_CPs.append(i)
filtr = filter(lambda x: x.split('-')[1] != "noCP", headers_CPs)
print filter
我想学习如何写高效的代码。因此,我想问你,你是否有一些想法,如何解决这个简单的任务更容易。也许在一条线上
查看list comprehensions。你可以这样做:
这将拉出列表
headers
中包含字符串“CP”的所有项一种方法是只接受包含
-CP-
的项,而不是检查CP
是否存在,然后过滤结果。您可以在list comprehension中执行此操作:如果您不确定分隔符(这里是
'-'
),您可以用regex检查它正则表达式
r'\bCP\b'
将只匹配被无字字符包围的CP
文本(\b
是regex中的字边界修饰符)相关问题 更多 >
编程相关推荐