如何使用python中的lambdas从不同的字符串中提取所需的字符串列表

2024-10-07 00:31:46 发布

您现在位置:Python中文网/ 问答频道 /正文

S = [u'BIGSQL_WORKER', u'DATANODE', u'FLUME_HANDLER', u'HBASE_CLIENT', u'HBASE_REGIONSERVER', u'HCAT', u'HDFS_CLIENT', u'HIVE_CLIENT', u'MAPREDUCE2_CLIENT', u'NODEMANAGER', u'OOZIE_CLIENT', u'PIG', u'SLIDER', u'SOLR', u'SPARK_CLIENT', u'SQOOP', u'YARN_CLIENT', u'ZOOKEEPER_CLIENT', u'ZOOKEEPER_SERVER']

我想删除包含“CLIENT”的字符串

F = map(lambda x: x if 'CLIENT' not in x else None, S)
F = [u'BIGSQL_WORKER', u'DATANODE', u'FLUME_HANDLER', None, u'HBASE_REGIONSERVER', u'HCAT', None, None, None, u'NODEMANAGER', None, u'PIG', u'SLIDER', u'SOLR', None, u'SQOOP', None, None, u'ZOOKEEPER_SERVER']

我试过传球,但在兰姆达里面没用,知道吗?你知道吗


Tags: clientnonezookeepersolrhandlerworkerhbaseslider
2条回答

试试list comprehension,它非常通用,可以用于以下方面:

[s for s in S if 'CLIENT' not in s]

列表理解可能是您想要的,但是您也可以使用filter[docs]而不是映射:

In [77]: filter(lambda s: 'CLIENT' not in s, S)
Out[77]:
[u'BIGSQL_WORKER',
 u'DATANODE',
 u'FLUME_HANDLER',
 u'HBASE_REGIONSERVER',
 u'HCAT',
 u'NODEMANAGER',
 u'PIG',
 u'SLIDER',
 u'SOLR',
 u'SQOOP',
 u'ZOOKEEPER_SERVER']

相关问题 更多 >