2011-08-04 2 views
2

私は比較的プログラミングの面で新しいので、Pythonを使って(非常に)長い情報リストをテーブルに入れようとしています。私はHTML.py from Decalageをインストールしました。私のリストをHTML.pyが解析できるリストのリストにする必要があります。 「\ nの」でリストのリストにリスト内の特定の文字のリストをリストに分割するにはどうすればよいですか?

['(617) 965-2555<br />\nOrganization Name', 'Street Name', 'City', 'Zip code', '(413) 333-2251<br />\nOrg Name 2', 'Address', 'City', 'Zip code 2', '(617) 568-7777</p>\n\n']

このようなリストを分割する簡単な方法はありますか?

だから、理想的結果は、次のようなもののようになります。組織的なテーブルラHTML.pyにそのリストを取得する別の方法について

[ ['Previous info', '(617) 965-2555<br />'] ['Organization name', 'Street name', 'City', 'Zip Code', '(413) 333-2251<br />'] ['Org Name 2', 'Address', 'City', 'Zip Code 2', '(617) 568-7777</p>'] ]

提案も参考になります。あなたがしたい場合

答えて

3
>>> a 
['(617) 965-2555<br />\nOrganization Name', 'Street Name', 'City', 'Zip code', '(413) 333-2251<br />\nOrg Name 2', 'Address', 'City', 'Zip code 2', '(617) 568-7777</p>\n\n'] 
>>> [i.split("\n") for i in a] 
[['(617) 965-2555<br />', 'Organization Name'], ['Street Name'], ['City'], ['Zip code'], ['(413) 333-2251<br />', 'Org Name 2'], ['Address'], ['City'], ['Zip code 2'], ['(617) 568-7777</p>', '', '']] 

はそれがフラット化:

>>> import itertools 
>>> list(itertools.chain(*[i.split("\n") for i in a])) 
['(617) 965-2555<br />', 'Organization Name', 'Street Name', 'City', 'Zip code', '(413) 333-2251<br />', 'Org Name 2', 'Address', 'City', 'Zip code 2', '(617) 568-7777</p>', '', ''] 

編集:

感謝を@ AGFさんのコメントに、今私は私が思うにそれを得た:仮定し

>>> a 
['(617) 965-2555<br />\nOrganization Name', 'Street Name', 'City', 'Zip code', '(413) 333-2251<br />\nOrg Name 2', 'Address', 'City', 'Zip code 2', '(617) 568-7777</p>\n\n'] 
>>> [i.split("{}") for i in "{}".join(a).split("\n")] 
[['(617) 965-2555<br />'], ['Organization Name', 'Street Name', 'City', 'Zip code', '(413) 333-2251<br />'], ['Org Name 2', 'Address', 'City', 'Zip code 2', '(617) 568-7777</p>'], [''], ['']] 

「{} "あなたの元のリストには決して使用されません、そうでなければリストにないものに変更してください。|、あなたは確かに\ nに簡単にあなたのリストに変換することができます

filter("".join, result) 
+1

これは彼が尋ねたものではありません。彼はリストのリストを望んでおり、各改行は新しいサブリストを描いている。 – agf

+0

賢明ですが、使用されない文字を予測できない場合は破損しやすくなります。 – agf

+0

@agf、感謝、編集済みの回答。はい、エラーが発生しやすいですが、あなたは '+%+ '^ 23 +ç.ü'に変更できると思います。誰かが入力することはほとんど不可能です。または、ランダムな10文字を生成して使用することもできます。 – utdemir

0

newlist = [a.split('\n') for a in oldlist] 

しかし、あなたの210など

そして、あなたは簡単にリストを除去するための出力をフィルタリングすることができますがとちょうど空の文字列が含まれています結果リストは私の理解のためにあなたのソースリストに十分に近いものではありません... "以前の情報"はどこから来ましたか?

+0

おっと、誰かがそれに私を打ち負かした;-) –

+0

これはまた彼が望むことをしません。各行からサブリストを作成することはありません。 – agf

関連する問題