仅当item是文本时才连接列表项

我想将我的字符串转换为列表并仅在项目是文本时连接项目。

例如:

string = "123 text 4 text text text 800 text"

l = []
for i in string.split():
    if i[0].isalpha:
        l.append(i)

我想要的是

l = ["123", "text", "4", "text text text", "800", "text"]

我拥有的

l = ["123", "text", "4", "text", "text", "text", "800", "text"]

我想将数字之间的所有文本项合并为一个列表项

回答

import itertools as it    

string = "123 text 4 text text text 800 text"
l = [" ".join(group)
     for _, group in it.groupby(
         string.split(), key=lambda s: s[0].isalpha())]

结果:

>>> l
['123', 'text', '4', 'text text text', '800', 'text']


以上是仅当item是文本时才连接列表项的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>