Sim*_*Sim 5 python formatting common-lisp
免责声明:如何在 python 中打印列表的问题已经多次讨论过,因此,这个问题不问如何打印列表,但是否存在打印列表的特定方法(使用格式指令)。
第一个点击谷歌搜索如何format在 python中使用打印列表在这里,它看起来像:
print('\n'.join('{}'.format(k) for k in lst))
Run Code Online (Sandbox Code Playgroud)
是要走的路。但是我一直想知道是否有类似 lisp 的格式指令可以在没有详细连接操作的情况下执行此操作。例如,在普通的 lisp 中,一个简单的写法是:
(FORMAT T "~%~{~a~%~}" list-i-want-printed)
Run Code Online (Sandbox Code Playgroud)
~{...~} 基本上意味着迭代列表
~a 基本上意味着采用一个参数并使用其(或默认)print/to-string 指令打印它
~% 新队
python中是否存在这样的格式指令?
作为一个更详细的例子,为什么我想使用这样的指令:假设你有 3 个列表,你想在彼此下面打印。lispFORMAT将允许:
(FORMAT T "~{~a~}~%~{~a~}~%~{~a~}~%" list-1 list-2 list-3)
Run Code Online (Sandbox Code Playgroud)
而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))
Run Code Online (Sandbox Code Playgroud)
没有那么精致。
我认为基本答案是“否”,但您可以稍微改进一下您的示例:
print( ' '.join( '{}'.format(k) for k in lsta+lstb+lstc ) )
Run Code Online (Sandbox Code Playgroud)
没有换行符。如果我想在每个列表后换行
for lst in (lsta,lstb,lstc):
print( ' '.join( '{}'.format(k) for k in lst ) )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
705 次 |
| 最近记录: |