0

我有一个字符串列表(如下格式)

 ['email', 'go', 'a', 'instance', 'at', 'boo', 'email', 'message', 'message', 'instance', 'at', 'hello']

如何消除两个字符以下的任何内容?

4

2 回答 2

9

使用列表推导:

new_list = [k for k in old_list if len(k) >= 2]

列表推导式有时非常方便且易于使用,您可以在此处此处阅读更多内容。

于 2013-02-08T12:46:16.480 回答
2

使用列表推导通常是最易读的:

myList = ['email', 'go', 'a', 'instance', 'at', 'boo', 'email', 'message', 'message', 'instance', 'at', 'hello']

myResultList = [x for x in myList if len(x) >=2]

List Comprehension是一种通过迭代另一个列表来创建新列表的方法。在我对 myList 中每个 x 的示例中,如果 len(x) <= 2,列表推导保持 x。

您还可以执行以下操作:

myResultList = [x + "!oh" for x in myList if len(x) ==2]

这将导致['go!oh','at!oh','at!oh']

于 2013-02-08T12:47:09.513 回答