2015-02-11 44 views
-2

所以我有此列表,看起來像這樣:獲取從長列表中的每個字在python

['One', 'Two', 'Three', 'Four'] 
['Five', 'Six', 'Seven'] 

所以,與2個元素的列表(在上述各行的是列表的特定元素), lst = [['One', 'Two', 'Three', 'Four'], ['Five', 'Six', 'Seven']]

我的問題是如何提取每個字上面是一個字符串,以獲取例如兩個字符串數組一樣

'One', 'Two', 'Three', 'Four' 
'Five', 'Six', 'Seven' 

直到現在我還以爲這一切轉換成字符串,然後分裂它。這裏是我的代碼:

a = str(list) 
c = a.translate(None, '[]\'\'') #to remove the ' ' and [ ] 
c.split() #split here doesn't seem to be doing anything 
print c 

,其結果是一個大的字符串「一,二,三,四,五,六,七」

它應該是很簡單的東西,但即時通訊新PROG ,似乎無法找到一個角度。有人有什麼主意嗎?

+0

你究竟想在這裏做什麼?你已經在列表中的單詞,你究竟是什麼意思的*「字符串數組」*?你只是想要''''','兩','三','四'] + ['五','六','七']? – jonrsharpe 2015-02-11 14:28:38

+0

「字符串數組」是什麼意思?您是專指數組中的數據類型嗎?或者您只是將這個術語與'list'交替使用來表示「Python內置數據類型用來表示一個有序的項目序列」?或者是其他東西? – Kevin 2015-02-11 14:29:10

+0

忘記「字符串數組」。我怎樣才能明確每個單詞?我的意思是有一個變量myString,例如包含上述數字之一 – falco 2015-02-11 14:31:19

回答

1

編輯1

我認爲你有一個列表的列表,並試圖加入內部列表。如果是這樣的話,試試這個:

>>> l = [['One', 'Two', 'Three', 'Four'], ['Five', 'Six', 'Seven']] 
>>> [', '.join(x) for x in l] 
['One, Two, Three, Four', 'Five, Six, Seven'] 

如果您要訪問的列表中的各個元素,說"Six",您可以使用相應的索引訪問它。閱讀更多關於them on the docs

>>> l[1][1] 
'Six' 

原來的答案

我認爲你正在尋找str.join方法,像這樣

>>> ', '.join(['One', 'Two', 'Three', 'Four']) 
'One, Two, Three, Four' 
>>> ', '.join(['Five', 'Six', 'Seven']) 
'Five, Six, Seven' 
+0

我試過這個,但錯誤顯示:sqeuence項目0:預期的字符串,找到列表 – falco 2015-02-11 14:34:40

+0

@falco檢查編輯到答案..讓我知道如果他們幫助 – 2015-02-11 14:39:52

+0

是的,它現在完美的工作!顯然我可以像我的問題的評論索引它,但你的方式也很好! thnx :) – falco 2015-02-11 14:43:58

0

使用itertools。基本上,鏈函數將您的嵌套列表解包爲一個迭代器,然後您可以使用標準字符串方法加入。

your_list = [['One', 'Two', 'Three', 'Four'], ['Five', 'Six', 'Seven']] 

import itertools 

string = ", ".join(itertools.chain.from_iterable(your_list)) 
print string 
+2

請避免在代碼示例中使用'from foo import *'。這是不好的風格,並鼓勵代碼的氣味。 – 2015-02-11 14:34:24

+0

我的意思是,如果你精通文檔,你並不需要那麼做。你知道它來自哪裏,它不是一種真正的代碼味道。 – 2015-02-11 14:38:06

+0

對不起,這是不正確的。你知道標準API中的每個功能嗎?那麼你可能導入的其他圖書館呢? – 2015-02-11 15:14:33

1

斯普利特沒有做任何事情,因爲你沒有做任何事情。您需要"c ="才能將分割結果實際分配給變量。

相關問題