Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import timeit
- data_c = """data = [1, 2, 3, 5, 6, 8, 9, 10, 12, 14, 15, 16, 1000, 1101, 1102, 1103]
- """
- code_gw = data_c + """
- def sequence_machine(data):
- one, two, many, r = '%s,', '%s,%s,', '%s-%s,', ''
- if data:
- if len(data) == 1:
- return '%s' % data[0]
- if len(data) == 2:
- return '%s,%s' % (data[0], data[1])
- sequence_len, first = 1, data[0]
- last = first
- for el in data[1:]:
- if el - last > 1:
- sequence_len = last - first + 1
- if sequence_len > 2:
- r += many % (first, last)
- else:
- r += (sequence_len == 1 and one % last) or two % (first, last)
- first, last = el, el
- continue
- last = el
- # sequence_len += 1
- sequence_len = last - first + 1
- if sequence_len != 1:
- if sequence_len == 2:
- return r + '%s,%s' % (first, last)
- return r + '%s-%s' % (first, last)
- return r + '%s' % last
- return ''
- """
- print 'xxl', timeit.timeit(
- 'sequence_machine(data)',
- setup=code_gw, number=run_count
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement