9

我有一个字符串列表。我想获得一个新列表,其中排除以 '#' 开头的元素,同时保留顺序。最pythonic的方法是什么?(最好不使用循环?)

4

2 回答 2

27
[x for x in my_list if not x.startswith('#')]

这是最 Pythonic 的方式。这样做的任何方式最终都会在 Python 或 C 中使用循环。

于 2012-08-03T07:56:40.217 回答
10

不使用循环?有filter内置:

filter(lambda s: not s.startswith('#'), somestrings)

请注意,在 Python 3 中,它返回可迭代的,而不是列表,因此您可能必须用list().

于 2012-08-03T08:01:47.727 回答