ardggy's blog

Esc - Meta - Alt - Ctrl - Shift

範囲を生成するようなあれ

crontab の構文で "1-10,15,16" みたいなやつがあるけど、これを解析してイテレータがでてきたら便利そうである。

上の場合、1 から 10 がでてきて、次に 15, 16 とでてくるようなイテレータが生成される。

#!/usr/bin/env python
# coding: utf-8

from itertools import repeat, chain

def once(x):
  return repeat(x, 1)

def main():
  expected = [1,2,3,4,5,6,7,8,9,10,15,16]
  actual = chain(xrange(1, 11), once(15), once(16))

  assert expected == list(actual)

if __name__ == '__main__':
  main()

こういうのを生成できるパーサをでっち上げる瞬発力がほしい。