iterlib.py 934 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import random
  2. # def map_with_previous(f, prev, iterable):
  3. # for v in iterable:
  4. # yield f(prev, v)
  5. # prev = v
  6. def map_with_previous_result(f, prev, iterable):
  7. for v in iterable:
  8. r = f(prev, v)
  9. prev = r
  10. yield r
  11. # map_with_previous(lambda x, y: x + random.choice(["'", "''", "'''"]), ["c", "cs", "d", "ds", "e", "f", "fs", "g", "gs", "a", "as", "b"], "hello")
  12. def example():
  13. import random
  14. prev = "hello"
  15. res = []
  16. for v in ["c", "cs", "d", "ds", "e", "f", "fs", "g", "gs", "a", "as", "b"]:
  17. res.append((lambda x, y: x + "|" + y + random.choice(["'", "''", "'''"]))(prev, v))
  18. prev = v
  19. return res
  20. def example_two(f, iterable, prev):
  21. for v in iterable:
  22. # for v in ["c", "cs", "d", "ds", "e", "f", "fs", "g", "gs", "a", "as", "b"]:
  23. yield f(prev, v)
  24. prev = v
  25. # (lambda x, y: x + "|" + y + random.choice(["'", "''", "'''"]))