Re: [Tutor] Output of list

2007-12-23 Thread János Juhász
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
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] Output of list

2007-12-23 Thread Martin Walsh
János Juhász wrote:
 > 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
> 

... Or, by extending Alan's solution ...

def splitStringByN(s, n):
for m in range(0, len(s), n):
yield s[m:m+n]

k = 'abcdefghi'
list(splitStringByN(k, 2))

As it turns out, this is similar to an ASPN Cookbook recipe contributed
by Dmitry Vasiliev:
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/302069

HTH,
Marty
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] Output of list

2007-12-23 Thread János Juhász
Dear Marty,


>... Or, by extending Alan's solution ...
>
>def splitStringByN(s, n):
>for m in range(0, len(s), n):
>yield s[m:m+n]
>
>k = 'abcdefghi'
>list(splitStringByN(k, 2))

It seems to be the most readable solution for me.


>As it turns out, this is similar to an ASPN Cookbook recipe contributed
>by Dmitry Vasiliev:
>http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/302069
>
>HTH,
>Marty

Thanks for the link.


Best regards,
Janos
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


Re: [Tutor] Output of list

2007-12-23 Thread Martin Walsh
János Juhász wrote:
> Dear Marty,

Hi Janos,

>> ... Or, by extending Alan's solution ...
>>
>> def splitStringByN(s, n):
>>for m in range(0, len(s), n):
>>yield s[m:m+n]
>>
>> k = 'abcdefghi'
>> list(splitStringByN(k, 2))
> 
> It seems to be the most readable solution for me.

For completeness, one could also pull it out of the function def and use
a generator expression directly. If I'm not mistaken, this would be more
or less equivalent:

k = 'abcdefghi'
list((k[m:m+2] for m in range(0, len(k), 2)))

> 
> 
>> As it turns out, this is similar to an ASPN Cookbook recipe contributed
>> by Dmitry Vasiliev:
>> http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/302069
>>
>> HTH,
>> Marty
> 
> Thanks for the link.

No problem.

Happy Holidays!
Marty
___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


[Tutor] Py2Exe Tutorial

2007-12-23 Thread TW

I am wondering if there is a good tutorial on Py2Exe and its functions?
I have not been able to find one. I have samples but that is not good
enough. It would be nice to have something explain all the functions for
including directories, modules and all that stuff when making an executable.

Bruce

___
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor