在 Lisp 中,你可以有这样的东西:
(setf my-stuff '(1 2 "Foo" 34 42 "Ni" 12 14 "Blue"))
(format t "~{~d ~r ~s~%~}" my-stuff)
迭代同一个列表的最 Pythonic 方式是什么?首先想到的是:
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])
但这对我来说感觉很尴尬。我确定有更好的方法吗?
好吧,除非有人后来提供了一个更好的例子,否则我认为 gnibbler 的解决方案是最好的\最接近的,尽管起初它的工作方式可能并不那么明显:
mystuff = [1, 2, "Foo", 34, 42, "Ni", 12, 14, "Blue"]
for x in zip(*[iter(mystuff)]*3):
print "{0} {1} {2}".format(*x)