2015-02-05 46 views
-2

我有一個名字分開的名字列表,我想將各個名字連接在一起。 這是我目前有:連接列表的某些部分。刪除空格。

['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', ' ']

我想將它變成這樣:

['Stuart', 'Steve', 'Andrew', 'Luke', 'Shaney', 'Luke', 'Moley', 'Moley', 'Rob'] 
+2

'''.join(your_list).split()' – vaultah 2015-02-05 19:31:49

+1

這是可能的,但您是如何獲得第一個列表的?你應該首先把數據放在一個更好的格式中,而不是把它放到這個搞砸的地方,並試圖修復它。 – 2015-02-05 19:31:49

+0

@vaultah這將導致一個字符串,而不是一個列表。 – 2015-02-05 19:32:08

回答

1

info成爲您的列表。

concat = "".join(info) 
names = concat.split() 
print names 

但請參閱Two-Bit Alchemist的評論。

+0

是的,我看到了編輯的迴應,歡呼聲:) – Shaney96 2015-02-05 19:39:17

0

可以遍歷該列表中的字符,這裏是一個小例子:

# chars being your list 
names = [] 

current_name = "" 
for current_char in chars: 
    if current_char == ' ': 
     names.append(current_name) 
     current_name = "" 
    else: 
      current_name += current_char 

return names 
1

使用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()
+0

歡迎您將響應與上下文鏈接,我很感激。 – Shaney96 2015-02-05 19:41:57

0

考慮li是輸入列表 -

>>> [i for i in "".join(li).split(" ") if i.strip() != ""] 
['Stuart', 'Steve', 'Andrew', 'Luke', 'Shaney', 'Luke', 'Moley', 'Moley', 'Rob'] 

列表內涵是隻排除空字符串。