我一直对使用print语句简单地输出到终端需要多长时间感到惊讶/沮丧。在经历了最近令人痛苦的缓慢日志记录之后,我决定进行调查,并惊讶地发现几乎所有的时间都在等待终端处理结果。 可以以某种方式加快对stdout的写入速度吗? 我编写了一个脚本(print_timer.py此问题底部的' ')来比较将100k行写入stdout,文件以及将stdout重定向到时的时序/dev/null。计时结果如下: $ python print_timer.py this is a test this is a test <snipped 99997 lines> this is a test ----- timing summary (100k lines each) ----- print :11.950 s write to file (+ fsync) : 0.122 s print with stdout = /dev/null : 0.050 s 哇。为了确保python在幕后不做任何事情,例如认识到我将stdout重新分配给/ dev …
这是字典 cars = {'A':{'speed':70, 'color':2}, 'B':{'speed':60, 'color':3}} 使用这个 for loop for keys,values in cars.items(): print(keys) print(values) 它打印以下内容: B {'color': 3, 'speed': 60} A {'color': 2, 'speed': 70} 但是我希望程序像这样打印它: B color : 3 speed : 60 A color : 2 speed : 70 我刚刚开始学习字典,所以不确定如何执行此操作。
我想知道是否有比这更好的方法来打印Python列表中的所有对象: myList = [Person("Foo"), Person("Bar")] print("\n".join(map(str, myList))) Foo Bar 我读这种方式不是很好: myList = [Person("Foo"), Person("Bar")] for p in myList: print(p) 是否没有类似的东西: print(p) for p in myList 如果没有,我的问题是...为什么?如果我们可以使用综合列表来完成此类工作,为什么不将其作为列表之外的简单语句呢?