Haftungsausschluss: Die Frage, wie eine Liste in Python drucken bereits mehrfach abgedeckt ist, damit diese Frage nicht, wie eine Liste drucken, sondern darum, ob eine bestimmte Art und Weise eine Liste zu drucken existiert (unter Verwendung der format Direktive).Common Lisp wie Formatierungsanweisung drucken Listen
Der erste Treffer einer wird googeln, wie eine Liste ist here mit format
in Python drucken und es sieht so aus:
print('\n'.join('{}'.format(k) for k in lst))
ist der Weg zu gehen. Aber ich frage mich, ob es eine lisp-ähnliche format-Anweisung gibt, um dies ohne die ausführliche Join-Operation zu tun. Z.B. in common lisp würde man einfach schreiben:
(FORMAT T "~%~{~a~%~}" list-i-want-printed)
~{...~}
bedeutet im Grunde iterieren Liste
~a
im Grunde bedeutet, ein Argument zu nehmen und drucken seine (oder Standard) Drucke mit/zu-String-Richtlinie
~%
newline
Gibt es eine solche Format-Anweisung in Python?
Als ein gründlicheres Beispiel, warum ich solche Direktive verwenden möchte: Gegeben, Sie haben 3 Listen, die Sie unter einander drucken möchten. Die Lisp FORMAT
erlauben würde:
print(''.join('{}'.format(k) for k in lsta) + '\n' + ''.join('{}'.format(k) for k in lstb) + '\n' + ''.join('{}'.format(k) for k in lstc))
nicht ganz so raffiniert:
(FORMAT T "~{~a~}~%~{~a~}~%~{~a~}~%" list-1 list-2 list-3)
während die Python-Lösung aussehen würde.
Ein einfaches 'print (lst)' eine Liste drucken, und 'print (lsta, LSTB, LSTC)' wird 3 Listen drucken, eine pro Zeile . Ich nehme an, das ist das, was Ihrem Lisp-Code am nächsten kommt, aber ich kenne Lisp nicht. Es ist nicht klar, wie die Ausgabe aussehen soll, da Ihre beiden Python-Snippets ziemlich unterschiedliche Ergebnisse liefern. –
Es handelt sich nicht um eine bestimmte Ausgabe, sondern um den allgemeinen Begriff der Verwendung einer Drucklistenanweisung in einer Formatzeichenfolge, um anstelle von mehreren Verknüpfungen eine kurze Anweisung zu verwenden. Grundsätzlich möchte ich in der Lage sein, eine Liste in einem beliebigen Kontext zu formatieren. – Sim
Sie können die Liste als eine einzelne Entität drucken, in diesem Fall erhalten Sie ihre String-Darstellung, komplett mit Klammern und Kommas zwischen den "Rep" jedes Listenelements. Wenn das nicht ausreichend ist, müssen Sie eine Art Looping machen. Beachten Sie, dass Sie einer Liste (oder einem anderen Container) von Zeichenfolgen mit 'sep.join (str_lst)' beitreten können, wobei 'str_lst' die Liste der Zeichenfolgen und' sep' die Zeichenfolge zum Trennen der Zeichenfolgenelemente in 'str_lst' ist . –