免责声明:如何在
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 ) )