python – 用于打印列表的常见lisp like format指令

免责声明:如何在
python中打印列表的问题已经多次被覆盖,因此,这个问题不会问如何打印列表但是存在打印列表的特定方式(使用格式指令).

第一个匹配的人用谷歌搜索如何使用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))

不太精致.

最佳答案 我认为基本答案是“不”,但你可以稍微改进你的例子:

print( ' '.join(  '{}'.format(k) for k in lsta+lstb+lstc  ) )

没有换行.如果我想在每个列表之后使用换行符,我会这样做

for lst in (lsta,lstb,lstc):
    print( ' '.join(  '{}'.format(k) for k in lst  ) )
点赞