免责声明 :如何在python中打印列表的问题已经多次覆盖,因此,这个问题不会问如何打印列表但是是否存在打印列表的特定方式(使用格式指令)。
第一个匹配的人在谷歌搜索如何使用format
在python here中打印列表,它看起来像:
print('\n'.join('{}'.format(k) for k in lst))
是要走的路。但我一直想知道是否有一个类似于lisp的格式指令来执行此操作而不需要详细的连接操作。例如。在common lisp中,可以简单地写一下:
(FORMAT T "~%~{~a~%~}" list-i-want-printed)
~{...~}
基本上意味着迭代列表
~a
基本上意味着接受一个参数并使用其(或默认的)print / to-string指令打印它
~%
换行
python中是否存在这样的格式指令?
作为一个更彻底的例子,我想使用这样的指令:
鉴于您有3个列表,您想要在彼此下面打印。 lisp FORMAT
允许:
(FORMAT T "~{~a~}~%~{~a~}~%~{~a~}~%" list-1 list-2 list-3)
而python解决方案看起来像:
print(''.join('{}'.format(k) for k in lsta) + '\n' + ''.join('{}'.format(k) for k in lstb) + '\n' + ''.join('{}'.format(k) for k in lstc))
不太精致。
答案 0 :(得分:2)
我认为基本答案是“不”,但你可以稍微改进一下你的例子:
Error in axis(side = 1, at = 1:24, labels = c("V4", "G8"), xaxt = "n", :
'at' and 'labels' lengths differ, 24 != 2
In addition: Warning message:
In bxp(list(stats = c(-1.20186549488911, -0.970033304559564, -0.465271399251147, :
some notches went outside hinges ('box'): maybe set notch=FALSE
没有换行。如果我想在每个列表之后使用换行符
print( ' '.join( '{}'.format(k) for k in lsta+lstb+lstc ) )