[Tutor] Output of list
hey 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 _ Express yourself instantly with MSN Messenger! Download today it's FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/ ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Output of list
Emil wrote: hey 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? map(''.join, zip(k[::2], k[1::2])) ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Output of list
Emil wrote: hey 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? Also : [''.join(i) for i in zip(k[::2], k[1::2])] ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Output of list
Ricardo Aráoz wrote: Emil wrote: hey 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? Also : [''.join(i) for i in zip(k[::2], k[1::2])] Cool use of 'zip' and extended slicing! Just thought I would add that 'zip' truncates after the shortest sequence, which would cause data loss for strings of odd length -- of course, the OP may not consider this a problem. In [1]: k = 'abcdefghi' # - note the 'i' In [2]: len(k) Out[2]: 9 In [3]: [''.join(i) for i in zip(k[::2], k[1::2])] Out[3]: ['ab', 'cd', 'ef', 'gh'] # - 'i' is gone HTH, Marty ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Output of list
Emil [EMAIL PROTECTED] wrote 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 You can use list slicing to do this. Combine with the stepsize parameter of the range function 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']. k = 'abcdefgh' new = [] for n in range(0,len(k),2): # 2=stepsize new.append(k[n:n+2]) # use slice print new As a list comprehension that would be: new = [k[n:n+2] for n in range(0,len(k),2)] And as a more general function: def splitStringByN(s,n): return [s[m:m+n] for m in range(0,len(s),n)] Should work, HTH, -- Alan Gauld Author of the Learn to Program web site http://www.freenetpages.co.uk/hp/alan.gauld ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Output of list
Martin Walsh wrote: Ricardo Aráoz wrote: Emil wrote: hey 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? Also : [''.join(i) for i in zip(k[::2], k[1::2])] Cool use of 'zip' and extended slicing! Thx Just thought I would add that 'zip' truncates after the shortest sequence, which would cause data loss for strings of odd length -- of course, the OP may not consider this a problem. In [1]: k = 'abcdefghi' # - note the 'i' In [2]: len(k) Out[2]: 9 In [3]: [''.join(i) for i in zip(k[::2], k[1::2])] Out[3]: ['ab', 'cd', 'ef', 'gh'] # - 'i' is gone Could only think of : [''.join(i) for i in zip(k[::2], k[1::2])] + list(k)[-(len(k)%2):0:-len(k)] But maybe it is too complicated. There should be a simpler way. ___ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor