使用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