从列表中获取一定长度的字符串

时间:2014-03-12 20:10:51

标签: python string list

我所追求的是这样的:

list1 = ["well", "455", "antifederalist", "mooooooo"]

由于字符数而从列表中提取"455"的东西。

3 个答案:

答案 0 :(得分:5)

您可以将next()与生成器一起使用:

>>> list1 = ["well", "455", "antifederalist", "mooooooo"]
>>> 
>>> next(s for s in list1 if len(s) == 3)
'455'

next()还允许您指定"默认"如果列表不包含任何长度为3的字符串,则返回值。例如,在这种情况下返回None

>>> list1 = ["well", "antifederalist", "mooooooo"]
>>> 
>>> print next((s for s in list1 if len(s) == 3), None)
None

(我使用了明确的print,因为None默认情况下不会在交互模式下打印。)

如果您想要所有长度为3的字符串,您可以轻松地将上述方法转换为列表理解:

>>> [s for s in list1 if len(s) == 3]
['455']

答案 1 :(得分:1)

filter(lambda s: len(s) == 3, list1)

答案 2 :(得分:0)

如果您希望将所有项目从列表中拉出来超过一定长度:

 list2 = [string for string in list1 if len(string) >= num_chars]