[Tutor] Output of list
János Juhász
janos.juhasz at VELUX.com
Sun Dec 23 17:52:28 CET 2007
Dear Emil,
> I want to be capable of converting a string into a list where all
> the items, in the list, have a fixed length not equal to 1 e.g i
> have k = 'abcdefgh' and I want the fixed length for all the the
> items to be 2 then the list would look like ['ab', 'cd', 'ef, 'gh'].
> How do i do this?
>
> - Emil
It is nice place to use a generator:
def pairs(sliceit):
streamlist = list(sliceit)
streamlist.reverse()
while streamlist:
pair = streamlist.pop()
try: pair += streamlist.pop()
except: pass
yield pair
## Probably it is easier to understand
def pairs2(sliceit):
try:
while sliceit:
yield sliceit[:2]
sliceit = sliceit[2:]
except: # oops, it was odd length
yield sliceit
print '_'.join(e for e in pairs('abcd'))
print '_'.join(e for e in pairs('abcde'))
print '_'.join(e for e in pairs2('abcd'))
print '_'.join(e for e in pairs2('abcde'))
Best Regards,
Janos
More information about the Tutor
mailing list