给出一个字符串列表,说:
a = ['hey','hey how are you','good how are you','I am', 'I am fine 8998','9809 908']
Run Code Online (Sandbox Code Playgroud)
如何删除少于三个令牌的字符串?:
a = ['hey how are you','good how are you', 'I am fine 8998']
Run Code Online (Sandbox Code Playgroud)
我试过了:
' '.join(a.split(' ')[3:])
Run Code Online (Sandbox Code Playgroud)
但是,它不起作用.知道如何删除少于三个令牌的所有字符串
你可以使用这个列表理解:
>>> [i for i in a if len(i.split())>=3]
['hey how are you', 'good how are you', 'I am fine 8998']
Run Code Online (Sandbox Code Playgroud)
这是使用filter和执行相同操作的另一种方法lambda:
a = ['hey','hey how are you','good how are you','I am', 'I am fine 8998','9809 908']
res = list(filter(lambda x: x.count(' ') >= 2, a))
# ['hey how are you', 'good how are you', 'I am fine 8998']
Run Code Online (Sandbox Code Playgroud)
要么:
res = list(filter(lambda x: len(x.split()) >= 3, a))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42 次 |
| 最近记录: |