In Lisp, können Sie so etwas wie diese:Iterate ein Format-String über eine Liste
(setf my-stuff '(1 2 "Foo" 34 42 "Ni" 12 14 "Blue"))
(format t "~{~d ~r ~s~%~}" my-stuff)
Was wäre der Pythonic Weg dieselbe Liste iterieren das? Die erste Sache, die in den Sinn kommt, ist:
mystuff = [1, 2, "Foo", 34, 42, "Ni", 12, 14, "Blue"]
for x in xrange(0, len(mystuff)-1, 3):
print "%d %d %s" % tuple(mystuff[x:x+3])
Aber das fühlt sich nur peinlich für mich. Ich bin sicher, dass es einen besseren Weg gibt?
Nun, es sei denn, jemand später ein besseres Beispiel bietet, denke ich gnibbler Lösung der schönste ist \ am nächsten, obwohl es zunächst nicht ganz so offensichtlich sein kann, wie es das tut, was es tut:
mystuff = [1, 2, "Foo", 34, 42, "Ni", 12, 14, "Blue"]
for x in zip(*[iter(mystuff)]*3):
print "{0} {1} {2}".format(*x)
Nebenbei, ist nicht so umständlich so ein wunderbares Wort? Es sieht nur * komisch aus! –
Es sieht im Vergleich peinlich aus, aber es ist wirklich nicht so schlimm. – ChaosPandion
+1, weil ich keine Ahnung habe, ob Sie sich auf meinen Kommentar oder den Code beziehen. * Bitte * nicht klarstellen, die Mehrdeutigkeit ist viel unterhaltsamer/interessanter! –