我所追求的是这样的:
list1 = ["well", "455", "antifederalist", "mooooooo"]
由于字符数而从列表中提取"455"
的东西。
答案 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]