使用itertools.groupby
和组使用str.isspace
:
>>> from itertools import groupby
>>> lst = ['S', 't', 'u', 'a', 'r', 't', ' ', 'S', 't', 'e', 'v', 'e', ' ', 'A', 'n', 'd', 'r', 'e', 'w', ' ', 'L', 'u', 'k', 'e', ' ', 'S', 'h', 'a', 'n', 'e', 'y', ' ', 'L', 'u', 'k', 'e', ' ', 'M', 'o', 'l', 'e', 'y', ' ', 'M', 'o', 'l', 'e', 'y', ' ', 'R', 'o', 'b', ' ']
>>> [''.join(g) for k, g in groupby(lst, key=str.isspace) if not k]
['Stuart', 'Steve', 'Andrew', 'Luke', 'Shaney', 'Luke', 'Moley', 'Moley', 'Rob']
我从一个文本文件中读取。我分解了文本并将其放入 列表中,我现在想知道如何获取它,以便识别何时存在空间 并相应地连接数据。我不知道如何 虽然
我不知道如何阅读本文,但你正在处理它不正确。如果你想单词的列表只是对你已经阅读文本使用str.split
>>> s = 'Stuart Steve Andrew Luke Shaney Luke Moley Moley Rob'
>>> list(s)
['S', 't', 'u', 'a', 'r', 't', ' ', 'S', 't', 'e', 'v', 'e', ' ', 'A', 'n', 'd', 'r', 'e', 'w', ' ', 'L', 'u', 'k', 'e', ' ', 'S', 'h', 'a', 'n', 'e', 'y', ' ', 'L', 'u', 'k', 'e', ' ', 'M', 'o', 'l', 'e', 'y', ' ', 'M', 'o', 'l', 'e', 'y', ' ', 'R', 'o', 'b']
:
>>> s.split()
['Stuart', 'Steve', 'Andrew', 'Luke', 'Shaney', 'Luke', 'Moley', 'Moley', 'Rob']
不要在你从文件中读取行或整个文本调用
list()
'''.join(your_list).split()' – vaultah 2015-02-05 19:31:49
这是可能的,但您是如何获得第一个列表的?你应该首先把数据放在一个更好的格式中,而不是把它放到这个搞砸的地方,并试图修复它。 – 2015-02-05 19:31:49
@vaultah这将导致一个字符串,而不是一个列表。 – 2015-02-05 19:32:08