你知道你可以做到這一點嗎?python:單行笛卡爾積for循環
>>> [(x,y) for x in xrange(2) for y in xrange(5)]
[(0, 0), (0, 1), (0, 2), (0, 3), (0, 4), (1, 0), (1, 1), (1, 2), (1, 3), (1, 4)]
它很整齊。有沒有for循環版本,或者只能爲列表解析做這個?
編輯:我想我的問題被誤解了。我想知道是否有這個特殊的語法:
for x in xrange(2) <AND> y in xrange(5):
print "do stuff here"
print "which doesn't fit into a list comprehension"
print "like printing x and y cause print is a statement", x, y
我能做到這一點,但它似乎有點重複:
for x,y in ((x,y) for x in xrange(2) for y in xrange(5)):
print x, y
不,你不能。這只是列表理解。 – rubik 2011-04-22 20:38:33
+1 rubik是正確的,這是不支持的語法。 – samplebias 2011-04-22 20:40:16
@samplebias:啊如果只有一個人可以接受評論作爲回答 – Claudiu 2011-04-22 20:41:00