2016-02-29 73 views
0

目前我有一個很長的名單,像這樣的元素: ['01/01/2013 06:31,長字符串,未知']。在逗號分割名單

我該如何將每個元素拆分爲: ['01/01/2013 06:31],[長字符串],[未知]?我可以這樣做嗎?

我試過了variable.split(「,」),但是我得到了「AttributeError:'list'對象沒有屬性'split'」。

這裏是我的代碼:

def sentiment_analysis(): 
    f = open('C:\path', 'r') 
    write_to_list = f.readlines() 
    write_to_list = map(lambda write_to_list: write_to_list.strip(), write_to_list) 
    [e.split(',') for e in write_to_list] 
    print write_to_list[0:2] 
    f.close() 
    return 

我仍然沒有得到它,我會很感激任何幫助!

+0

您需要爲字符串做'split',即'可變[0] .split( 「」)'。或者對於使用字符串的列表,您可以在變量中執行'[s.split(',')s'' –

回答

1

解決方案

現在給你這樣的:

['01/01/2013 06:31, long string of characters,Unknown']

好吧。如果你知道,只有在此列表中這一個長字符串,只是提取的唯一元素:

>>> x = ['01/01/2013 06:31, long string of characters,Unknown'] 
>>> 
>>> y = x[0].split(",") # extract only element and split by comma 
>>> print(y) # list of strings, with one depth 
['01/01/2013 06:31', ' long string of characters', 'Unknown'] 

現在不管是什麼原因,你真正想要的外部列表中的每個eletent是在一個字符串列表它。這是很容易的做到 - 只要使用map和匿名函數:

... # continuation from snippet above 
... 
>>> z = map(lambda s: [s], y) # encapsulates each elem of y in a list 
>>> print(z) 
[['01/01/2013 06:31'], [' long string of characters'], ['Unknown']] 

有你有它。


一個班輪結論

沒有列表內涵,沒有for循環,沒有發電機。只是非常簡單的函數式編程和匿名函數。

鑑於最初的名單l

res = map(lambda s: [s], 
      l[0].split(",")) 
1

列表理解!

>>> variable = ['01/01/2013 06:31, long string of characters,Unknown'] 
>>> [x.split(',') for x in variable] 
[['01/01/2013 06:31', ' long string of characters', 'Unknown']] 

別急,這是嵌套比你更想...

>>> itertools.chain.from_iterable(x.split(',') for x in variable) 
<itertools.chain object at 0x109180fd0> 
>>> list(itertools.chain.from_iterable(x.split(',') for x in variable)) 
['01/01/2013 06:31', ' long string of characters', 'Unknown'] 
+0

感謝您的迴應。不過,我正在從一個列表中尋找3個不同的列表。[['01/01/2013 06:31]',['長字符串'],['未知']]。謝謝! – squidvision

+0

這就像將方括號放在'x.split(',')' –