常见的 lisp 格式指令来打印列表
common lisp like format directive to print lists
免责声明:如何在 python 中打印列表的问题已多次提及,因此,这个问题不问如何打印列表,而是问是否存在打印列表的特定方法(使用格式指令)。
第一个在谷歌上搜索如何使用 python 中的 format
打印列表的是 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))
不太精致。
我认为基本答案是 "No",但您可以稍微改进您的示例:
print( ' '.join( '{}'.format(k) for k in lsta+lstb+lstc ) )
没有换行符。如果我想在每个列表后换行,我会做
for lst in (lsta,lstb,lstc):
print( ' '.join( '{}'.format(k) for k in lst ) )
免责声明:如何在 python 中打印列表的问题已多次提及,因此,这个问题不问如何打印列表,而是问是否存在打印列表的特定方法(使用格式指令)。
第一个在谷歌上搜索如何使用 python 中的 format
打印列表的是 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))
不太精致。
我认为基本答案是 "No",但您可以稍微改进您的示例:
print( ' '.join( '{}'.format(k) for k in lsta+lstb+lstc ) )
没有换行符。如果我想在每个列表后换行,我会做
for lst in (lsta,lstb,lstc):
print( ' '.join( '{}'.format(k) for k in lst ) )