從這個串列中
lst=['a,b,c', 'd,e']
我想獲得下面的一個
lst=['a'/span>, 'b'/span>,'c'/span>,'d'/span>,'e'/span>]
所以我認為,首先應該把第一個串列中的引號洗掉。 但這一行
[i for i in lst.split(' '/span> ' '/span>)]
產生這個錯誤資訊。
AttributeError: 'list' object has no attribute 'split'/code>
我應該如何改變我的代碼以獲得我需要的東西?
uj5u.com熱心網友回復:
我知道我已經回答過了,我只是注意到,由于元素是字串并且有逗號分隔,你可以在串列中使用str.join,然后只需str.split結果就可以得到所需的輸出:
','.join(lst).split(',')
>>> lst = ['a,b,c'/span>, 'd,e'/span>]
>>> ','.join(lst).split(' ,')
['a'/span>, 'b'/span>, 'c'/span>, 'd'/span>, 'e'/span>]
注意,這在這種情況下是有效的,但只是因為你的特定值。
uj5u.com熱心網友回復:
如果你想使用一個串列理解,它看起來會是這樣的:
[y for x in lst for yin x. split(',') ] 。
這個錯誤是因為你在一個list上呼叫split,但你需要在一個str上呼叫它。for x in lst給你的字串是x,然后你呼叫split(',')來得到y,這就是進入最終串列的東西。
這就相當于:
output = [] []
for x in lst:
for y in x.split(' ,'):
output.append(y)
uj5u.com熱心網友回復:
你應該首先遍歷你的lst串列中的每個文本,用逗號分割這些文本,然后將分割后的文本的字符平鋪到一個串列中,就像這樣:
lst=['a,b,c', 'd,e']
character_lst = [char for text in lst for char in lst.split(" ,")
# character_list將包含['a', 'b', 'c', 'd', 'e']/span>
uj5u.com熱心網友回復:
使用itertools.chain:
from itertools import chain
list(chain(*(s.split(',') fors in lst) )
或者作為一個(較慢的)全功能變體:
from itertools import chain
list(chain(*map(lambda x: x.split(', '), lst) )
輸出:
['a'/span>, 'b'/span>, 'c'/span>, 'd'/span>, 'e'/span>]
uj5u.com熱心網友回復:
沒有匯入或嵌套回圈:
lst = ['a,b,c', 'd,e']
輸出 = []
for x in lst:
output.extend(x.split(','))
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/332545.html
標籤:
