ネストされたリスト内の単語を個々の文字に分割する方法を考えていました。
[['ANTT'], ['XSOB']]
になる
[['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']]
ネストされたリスト内の単語を個々の文字に分割する方法を考えていました。
[['ANTT'], ['XSOB']]
になる
[['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']]
リスト内包表記を使用します。
[list(l[0]) for l in mylist]
入力リストには、それぞれ 1 つの要素を持つネストされたリストが含まれているだけなのでl[0]
、各要素で使用する必要があります。list()
文字列に対して、個々の文字のリストを作成します。
>>> mylist = [['ANTT'], ['XSOB']]
>>> [list(l[0]) for l in mylist]
[['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']]
文字列のまっすぐなリストを生成するようにコードを修正した場合 (したがって、単一要素のネストされたリストはありません)、削除する必要があるのは[0]
:
>>> mylist = ['ANTT', 'XSOB']
>>> [list(l) for l in mylist]
[['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']]
あなたは機能的なアプローチをすることができます(それでもMartijn Pietersの答えのようにリスト内包表記を好むでしょう):
>>> from operator import itemgetter
>>> delisted = map(itemgetter(0),[['ANTT'],['XSOB']]) # -> ['ANTT', 'XSOB']
>>> splited = map(list,delisted) # -> [['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']]
または、ワンライナーとして:
>>> map(list,map(itemgetter(0),[['ANTT'],['XSOB']]))
[['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']]
>>> map(lambda s: map(list, s)[0], [['ANTT'],['XSOB']])
[['A', 'N', 'T', 'T'], ['X', 'S', 'O', 'B']]