equal
deleted
inserted
replaced
|
1 |
|
2 =============== |
|
3 Python syntax |
|
4 =============== |
|
5 .. contents:: |
|
6 :local: |
|
7 |
|
8 List comprehension |
|
9 ================== |
|
10 |
|
11 List comprehension produce complete list with compact syntax:: |
|
12 |
|
13 [x**2 for x in xrange(1,10)] |
|
14 [x+y for x in xrange(1,10) for y in xrange(1,10)] |
|
15 [x-y for x in xrange(1,10) for y in xrange(1,10) if x>y] |
|
16 |
|
17 xlist = [x**2 for x in xrange(1,10)] |
|
18 print xlist[0], xlist[2], xlist[-1] |
|
19 print xlist[2:4] |
|
20 print sum(xlist), sum(xlist) |
|
21 |
|
22 Generator expression |
|
23 ==================== |
|
24 |
|
25 Generator expression produce generator with compact syntax:: |
|
26 |
|
27 (x**2 for x in xrange(1,10)) |
|
28 (x+y for x in xrange(1,10) for y in xrange(1,10)) |
|
29 |
|
30 print [x for x in (x**2 for x in xrange(1,10))] |
|
31 |
|
32 xgen = (x**2 for x in xrange(1,10)) |
|
33 try: |
|
34 xgen[0] |
|
35 except TypeError: |
|
36 print "'generator' object has no attribute '__getitem__'" |
|
37 print sum(xlist), sum(xlist) |
|
38 |
|
39 Parentheses is required only if expression is ambiguous. |
|
40 |