、私はこれを行うことができます大きな巨大なデータ。それを読みやすいツリーにうまく印刷する方法はありますか? (インデント付き)?あなたが好きなものを意味どのようにPythonでリストを印刷するには、 "きれい"
答えて
from pprint import pprint
pprint(the_list)
...:
>>> print L
['this', 'is', 'a', ['and', 'a', 'sublist', 'too'], 'list', 'including', 'many', 'words', 'in', 'it']
>>> import pprint
>>> pprint.pprint(L)
['this',
'is',
'a',
['and', 'a', 'sublist', 'too'],
'list',
'including',
'many',
'words',
'in',
'it']
>>>
を...?あなたの大まかな説明から、標準ライブラリーモジュールpprintが心に浮かぶ最初のものです。しかし、例の入力と出力を記述することができれば(つまり、あなたを助けるためにPHPを覚える必要はありません;-)、より具体的なヘルプを提供する可能性があります。
pprint
をインポートすることなく動作するデバッグ中に、速いハックが'\n'
のリストに参加することになります。
>>> lst = ['foo', 'bar', 'spam', 'egg']
>>> print '\n'.join(lst)
foo
bar
spam
egg
https://docs.python.org/3/library/pprint.html
あなたが(例えば呪いで使用するための)テキストが必要な場合:
import pprint
myObject = []
myText = pprint.pformat(myObject)
その後myText
変数意志何か似PHP var_dump
またはprint_r
。その他のオプションや引数については、ドキュメントを参照してください。
print関数の引数でリストを "アンパック"し、区切り記号として改行(\ n)を使用するだけです。他の回答として
プリント(* LST、9月= '\ n' は)
lst = ['foo', 'bar', 'spam', 'egg']
print(*lst, sep='\n')
foo
bar
spam
egg
残念ながら、Python 3でしか使用できません。 –
PPRINTモジュールは、トリックを行います示唆しています。
しかし、リスト全体をいくつかのログファイルに入れる必要があるデバッグの場合、モジュールとpprintとともにpformatメソッドを使用する必要があります。
import logging
from pprint import pformat
logger = logging.getLogger('newlogger')
handler = logging.FileHandler('newlogger.log')
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.setLevel(logging.WARNING)
data = [ (i, { '1':'one',
'2':'two',
'3':'three',
'4':'four',
'5':'five',
'6':'six',
'7':'seven',
'8':'eight',
})
for i in xrange(3)
]
logger.error(pformat(data))
ファイルに直接ログを記録する必要がある場合は、streamキーワードを使用して出力ストリームを指定する必要があります。 Ref
from pprint import pprint
with open('output.txt', 'wt') as out:
pprint(myTree, stream=out)
言及した他の回答のようStefano Sanfilippo's answer
を参照してください、pprint
は、あなたがやりたいだろう偉大なモジュールです。ただし、インポートしたくない場合や、開発中にデバッグ出力を出力したい場合は、その出力を近似することができます。
他の答えのいくつかは文字列でうまく動作しますが、クラスオブジェクトを使って試してみると、エラーTypeError: sequence item 0: expected string, instance found
が返されます。より複雑なオブジェクトの場合
、必ずクラスが希望のプロパティ情報を表示します__repr__
方法あります
class Foo(object):
def __init__(self, bar):
self.bar = bar
def __repr__(self):
return "Foo - (%r)" % self.bar
をそして、あなたは出力を印刷したいときに、単にstr
機能にあなたのリストをマッピングこのような:
l = [Foo(10), Foo(20), Foo("A string"), Foo(2.4)]
print "[%s]" % ",\n ".join(map(str,l))
出力:
[Foo - (10),
Foo - (20),
Foo - ('A string'),
Foo - (2.4)]
また、ネストされたきれいな印刷の形式を取得するためにlist
の__repr__
メソッドをオーバーライドするようなものを行うことができます。
class my_list(list):
def __repr__(self):
return "[%s]" % ",\n ".join(map(str, self))
a = my_list(["first", 2, my_list(["another", "list", "here"]), "last"])
print a
を
[first,
2,
[another,
list,
here],
last]
残念ながら、セカンドレベルのインデントを与えないが、迅速なデバッグのために、それ有用である可能性があります。
- 1. リストをリストに印刷するにはどうすればよいですか?
- 2. Pythonのリストはどのように列に印刷できますか?
- 3. 2dリストをPythonでCテーブルのように印刷する
- 4. Python:バイトをどのように印刷できますか?
- 5. Selenium Pythonを使用してドロップダウンメニューのリストを印刷するにはどうすればよいですか?
- 6. リストで項目を印刷しないようにするにはどうすればよいですか?
- 7. Pythonで列幅を指定してリストを印刷するにはどうすればよいですか?
- 8. 各内部リストが1つの行に印刷されるようにArrayListのArrayListを印刷するにはどうすればよいですか?
- 9. Pythonでコンマのないタプルのリストを印刷するには?
- 10. pythonでリストを印刷しようとしています
- 11. きれいな印刷モジュールを使って、リストをpythonで印刷するにはどうしたらいいですか?
- 12. Pythonでリストを印刷するときの印刷形式を制御する
- 13. 印刷リストのpython
- 14. macosxに印刷する:nstableviewを印刷するにはどうすればよいですか
- 15. JsonフィードをPythonでどのように印刷しますか?
- 16. Pythonリストのリストを後方に印刷する方法は?
- 17. C#でリストにネストされたタプルを印刷するにはどうすればよいですか?
- 18. pidを印刷せずに「$$」を印刷するにはどうすればよいですか?
- 19. Pythonでlikeのような文字を印刷するには
- 20. 文字列のリストをテキストファイルに縦に印刷するにはどうすればよいですか?
- 21. Pythonネイティブライブラリのリストを印刷
- 22. リスト内のオブジェクトをリスト内でどのように印刷しますか?
- 23. Pythonで混合リストを印刷する
- 24. 印刷ダイアログボックスでリストビュー印刷でアイテムを選択するにはどうすればよいですか?
- 25. タプルされたタプルのリストをCSV形式で印刷するにはどうすればよいですか?
- 26. jQueryのdatepickerはどのように印刷できますか?
- 27. clojureの各行に数字のリストを印刷するにはどうすればよいですか?
- 28. リストの理解に複数の値を印刷するにはどうすればよいですか?
- 29. は、どのように私はPythonで、テーブルは次のように印刷したいのPython
- 30. jinja2でリストを印刷するにはどうしたらいいですか?
ファイルへの印刷はいかがですか? – Mawg
'import pprint'を使わないのはなぜですか? – clankill3r
@ clankill3rなら、 'pprint.pprint(the_list)'を使う必要があります。通常は個人的な好みの問題です。私はこの場合、輸入ラインに余計な混乱を招くことにしました。 –