I just read the whole thread on list comprehension. Here's my proposed syntax, given by examples. This notation is very safe as it has been used in mathematics for years. a = [1, 2, 3]; b = [4, 5, 6] #---------------------------------------------------- # Parallel loops: c = tuples(a,b) # c = [(1,4), (2,5), (3,6)] c = lists(a,b) # c = [[1,4], [2,5], [3,6]] c = xtuples(a,b) # c = ((1,4), (2,5), (3,6)) c = xlists(a,b) # c = ([1,4], [2,5], [3,6]) #---------------------------------------------------- # prefix x has the same effect as in xrange in loops for pair in xtuples(a,b): print pair # print (1,4); print (2,5); print (3,6) for pair in xtuples(a,b): print pair # print [1,4]; print [2,5]; print [3,6] for i, j in xlists(a,b): pass #---------------------------------------------------- # list comprehension - all elements that satisfy conditions c = [x*2, y: x, y in xtuples(a,b)] # c = [(2,4), (4,5), (6,6)] c = [[x, y]: x, y in xtuples(a,b)] # c = [[1,4], [2,5], [3,6]] c = [x: x in a+b; x%2=0] # c = [2, 4, 6] c = [x in a+b: x%2=0] # ditto c = [x,y: x, y in xtuples(a,b); x>1; x+y<8] # c = [(2,5)] c = [x,y in xtuples(a,b): x>1; x+y<8] # ditto #---------------------------------------------------- # Corresponding to old syntax c = [x in a: f(x)] # c = filter(f, x) c = [f(x): x in a] # c = map(f, a) #---------------------------------------------------- # Iterated loops (all elements that satisfy condition): c = [x, y: x in a; y in b] # c = [(1,4), (1,5), (1,6), (2,4), (2,5), ...] c = [[x,y]: x in a; y in b] # c = [[1,4], [1,5], [1,6], [2,4], [2,5], ...] for i, j in [i, j: i in a; j in b]: print i, j # print 1,4; print 1,5; ... for i in a; j in b: print i, j # ditto -- Huaiyu Zhu hzhu@users.sourceforge.net Matrix for Python Project http://MatPy.sourceforge.net
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4