Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #74260
| From | Mark Lawrence <breamoreboy@yahoo.co.uk> |
|---|---|
| Subject | Re: Help me write better Code |
| Date | 2014-07-09 16:44 +0100 |
| References | <3a608dd2-d8bf-429e-af21-ce5ac8f18272@googlegroups.com> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.11695.1404920643.18130.python-list@python.org> (permalink) |
On 09/07/2014 15:27, sssdevelop wrote:
> Hello,
>
> I have working code - but looking for better/improved code. Better coding practices, better algorithm :)
>
> Problem: Given sequence of increasing integers, print blocks of consecutive integers.
>
> Example:
>
> Input: [10, 11, 12, 15]
> Output: [10, 11, 12]
>
> Input: [51, 53, 55, 67, 68, 91, 92, 93, 94, 99]
> Outout: [67, 68], [91, 92, 93, 94]
>
> My code looks as below:
> -----------------------------
> #!/usr/bin/python
> a = [51, 53, 55, 67, 68, 91, 92, 93, 94, 99]
> #a = []
> #a = [10]
> #a = [10, 11, 12, 15]
> print "Input: "
> print a
>
> prev = 0
> blocks = []
> tmp = []
> last = 0
> for element in a:
> if prev == 0:
> prev = element
> next
> if element == prev + 1:
> if tmp:
> pass
> else:
> tmp.append(prev)
> tmp.append(element)
> else:
> if tmp:
> blocks.append(tmp)
> tmp = []
>
> prev = element
>
> if tmp:
> blocks.append(tmp)
>
> if blocks:
> #print "I have repeated elements and those are:"
> for b in blocks:
> print b
>
> -----------------------
>
> thank you in advance!
>
Adopted from here https://docs.python.org/3.0/library/itertools.html
data = [51, 53, 55, 67, 68, 91, 92, 93, 94, 99]
for k, g in groupby(enumerate(data), lambda t:t[0]-t[1]):
group = list(map(operator.itemgetter(1), g))
if len(group) > 1:
print(group)
>>>
[67, 68]
[91, 92, 93, 94]
>>>
--
My fellow Pythonistas, ask not what our language can do for you, ask
what you can do for our language.
Mark Lawrence
---
This email is free from viruses and malware because avast! Antivirus protection is active.
http://www.avast.com
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Help me write better Code sssdevelop <sssdevelop@gmail.com> - 2014-07-09 07:27 -0700
Re: Help me write better Code Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-07-09 16:44 +0100
Re: Help me write better Code sssdevelop <sssdevelop@gmail.com> - 2014-07-10 07:39 -0700
Re: Help me write better Code Mark Lawrence <breamoreboy@yahoo.co.uk> - 2014-07-10 15:51 +0100
Re: Help me write better Code Rustom Mody <rustompmody@gmail.com> - 2014-07-10 11:38 -0700
Re: Help me write better Code Ian Kelly <ian.g.kelly@gmail.com> - 2014-07-09 12:16 -0600
Re: Help me write better Code sssdevelop <sssdevelop@gmail.com> - 2014-07-10 07:38 -0700
Re: Help me write better Code Terry Reedy <tjreedy@udel.edu> - 2014-07-09 14:46 -0400
Re: Help me write better Code sssdevelop <sssdevelop@gmail.com> - 2014-07-10 07:38 -0700
csiph-web