fork download
  1. def parse_page_range(page_range):
  2. pages = set()
  3.  
  4. for part in page_range.split(","):
  5. part = part.strip()
  6.  
  7. if "-" in part:
  8. start, end = map(int, part.split("-"))
  9. pages.update(range(start, end + 1))
  10. else:
  11. pages.add(int(part))
  12.  
  13. return sorted(pages)
  14.  
  15.  
  16. examples = [
  17. "1-3",
  18. "1,3,5",
  19. "1-3,7,9-11",
  20. "2,4-6,10"
  21. ]
  22.  
  23. for example in examples:
  24. print(f"{example} -> {parse_page_range(example)}")
Success #stdin #stdout 0.07s 14088KB
stdin
Standard input is empty
stdout
1-3 -> [1, 2, 3]
1,3,5 -> [1, 3, 5]
1-3,7,9-11 -> [1, 2, 3, 7, 9, 10, 11]
2,4-6,10 -> [2, 4, 5, 6, 10]