2016-05-13 24 views
1

私はこのようなリストのリストがあります:Pythonはリストのリストから空の要素を削除

[['A001', 'atendimento', 'sust', 'concessionário', 'adv', 'bom', 'adj', '', ''], 
['A001', 'falar', 'verb', 'ter', 'verb', 'nada', 'pron', 'carro', 'sust', '', ''], 
['A001', 'não', 'adv', 'perguntar', 'verb', 'problema', 'sust', 'carro', 'sust', '', ''], 
['A001', 'não', 'adv', 'oferecer', 'verb', 'ligar', 'verb', 'compra', 'sust', '', ''], 
['A001', 'não', 'adv', 'oferecer', 'verb', 'serviço', 'sust', 'compra', 'sust', '', '']] 

をそして、私は空要素なしリストの新しいリストを取得する各リストから空の要素を削除する:

[['A001', 'atendimento', 'sust', 'concessionário', 'adv', 'bom', 'adj'], 
['A001', 'falar', 'verb', 'ter', 'verb', 'nada', 'pron', 'carro', 'sust'], 
['A001', 'não', 'adv', 'perguntar', 'verb', 'problema', 'sust', 'carro', 'sust'], 
['A001', 'não', 'adv', 'oferecer', 'verb', 'ligar', 'verb', 'compra', 'sust'], 
['A001', 'não', 'adv', 'oferecer', 'verb', 'serviço', 'sust', 'compra', 'sust']] 

これをどのように達成できますか?

は、私はこれを試してみました:リストのリスト、サブリストからではない空の要素から空のリストを削除します

str_list = filter(None, list_of_lists) 
+0

可能な複製を行うことができます[Python:リストから空のリストを削除するには?](http://stackoverflow.com/questions/4842956/python-how-to-remove-empty-lists-from-a-list) – Sandeep

答えて

6

あなたの試み。その代わり、適用部分リストへのフィルタ:

str_list = [list(filter(None, lst)) for lst in list_of_lists] 

filter()への呼び出しはfilter()がPY3にイテレータを返すようあなたは、後でのpython3でこれを試すことが起こる場合にはlist()に包まれています。

とタグ付けされているため、フィルタリングによって長さや項目が異なる行が間違った列に表示される可能性があるので注意が必要です。あなたが行ごとに2つの最後の項目は常に空になることがわかっている場合、あなたはそれらをスライスできます。

str_list = [row[:-2] for row in list_of_lists] 
+0

OPへの注意: Python 3でも 'list'呼び出しはあなたが何をする必要があるかによってオプションです。反復子は悪くない、彼らは単にインデックス作成のような少ないものをサポートしています。 –

+0

確かに、データをオリジナルに近づけようとしていました。あとでデータを1回だけ処理しなければならない場合、イテレータは本当に便利です。 –

1

あなたはjoin

output = [' '.join(i).split() for i in list_of_list] 

出力リレー

[['A001', 'atendimento', 'sust', 'concession\xc3\xa1rio', 'adv', 'bom', 'adj'],['A001', 'falar', 'verb', 'ter', 'verb', 'nada', 'pron', 'carro', 'sust'],['A001','n\xc3\xa3o','adv','perguntar','verb','problema','sust','carro','sust'],['A001','n\xc3\xa3o','adv','oferecer','verb','ligar','verb','compra','sust'],['A001','n\xc3\xa3o','adv','oferecer','verb','servi\xc3\xa7o','sust','compra','sust']] 
関連する問題