Python的succint语法通过其电池允许冗长的代码行以可读的一行表示。请看下面的例子带有Itertools的等效嵌套循环结构
====================================================|
for a in range(3): |
for b in range(3): |
for c in range(3): |
print (a,b,c), |
- - - - - - - - - - - - - - - - - -|
for e in product(range(3), repeat=3): |
print e, |
====================================================|
for a in range(3): |
for b in range(a , 3): |
for c in range(b , 3): |
print (a,b,c), |
- - - - - - - - - - - - - - - - - -|
for e in combinations_with_replacement(range(3), 3):|
print e, |
====================================================|
for a in range(3): |
for b in range(a + 1, 3): |
for c in range(b + 1, 3): |
print (a,b,c), |
- - - - - - - - - - - - - - - - - -|
for e in combinations(range(3), 3): |
print e, |
====================================================|
for a in range(3): |
for b in range(3): |
for c in range(3): |
if len(set([a,b,c])) == 3: |
print (a,b,c), |
- - - - - - - - - - - - - - - - - -|
for e in permutations(range(3)): |
print e, |
====================================================|
后期我结束了一个深嵌套依赖环路我试图简洁表达,但未能
循环的结构将是如下
for a in A():
for b in B(a):
for c in C(b):
foo(a,b,c)
这样的结构可以用等价的itertools符号表示吗?
只是一个说明。 Prolog中的最后一个循环将表示为:a(A),b(A,B),c(B,C)'。如果你喜欢玩循环,请使用Prolog。 – liori 2013-02-23 04:56:13
你在最里面的循环体中使用'a','b'(中间值)吗? – jfs 2013-02-23 04:57:15
@liori:Prolog总是引诱我,但从来没有聪明到学习人工智能 – Abhijit 2013-02-23 04:57:49