diff options
author | Skip Montanaro <skip@pobox.com> | 2000-08-12 18:09:51 +0000 |
---|---|---|
committer | Skip Montanaro <skip@pobox.com> | 2000-08-12 18:09:51 +0000 |
commit | 803d6e5451cbf0416bfb252eedba36ff2e354fac (patch) | |
tree | e37c0cf52e141c341e6b8a64a5d7e7691313df41 /Lib/test/test_grammar.py | |
parent | b16b83534d008d45a2917bd2c4fd65010909dff2 (diff) | |
download | cpython-git-803d6e5451cbf0416bfb252eedba36ff2e354fac.tar.gz |
list comprehensions. see
http://sourceforge.net/patch/?func=detailpatch&patch_id=100654&group_id=5470
for details.
Diffstat (limited to 'Lib/test/test_grammar.py')
-rw-r--r-- | Lib/test/test_grammar.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/Lib/test/test_grammar.py b/Lib/test/test_grammar.py index fa09e8c55d..8eb552261c 100644 --- a/Lib/test/test_grammar.py +++ b/Lib/test/test_grammar.py @@ -542,3 +542,43 @@ class C: def meth1(self): pass def meth2(self, arg): pass def meth3(self, a1, a2): pass + +# list comprehension tests +nums = [1, 2, 3, 4, 5] +strs = ["Apple", "Banana", "Coconut"] +spcs = [" Apple", " Banana ", "Coco nut "] + +print [s.strip() for s in spcs] +print [3 * x for x in nums] +print [x for x in nums if x > 2] +print [(i, s) for i in nums for s in strs] +print [(i, s) for i in nums for s in [f for f in strs if "n" in f]] +try: + eval("[i, s for i in nums for s in strs]") + print "FAIL: should have raised a SyntaxError!" +except SyntaxError: + print "good: got a SyntaxError as expected" + +suppliers = [ + (1, "Boeing"), + (2, "Ford"), + (3, "Macdonalds") +] + +parts = [ + (10, "Airliner"), + (20, "Engine"), + (30, "Cheeseburger") +] + +suppart = [ + (1, 10), (1, 20), (2, 20), (3, 30) +] + +print [ + (sname, pname) + for (sno, sname) in suppliers + for (pno, pname) in parts + for (sp_sno, sp_pno) in suppart + if sno == sp_sno and pno == sp_pno +] |