[Tutor] Please take a look at this function
Hugo Arts
hugo.yoshi at gmail.com
Fri Dec 18 04:49:29 CET 2009
On Fri, Dec 18, 2009 at 3:44 AM, Richard D. Moores <rdmoores at gmail.com> wrote:
> On Thu, Dec 17, 2009 at 18:26, Kent Johnson <kent37 at tds.net> wrote:
>>
>> On Thu, Dec 17, 2009 at 7:57 PM, Richard D. Moores <rdmoores at gmail.com> wrote:
>> > def prestrings2list(a_str):
>> > word = ""
>> > list_of_strings = []
>> > length_of_a_string = len(a_str)
>> > for i, char in enumerate(a_str):
>> > if i == length_of_a_string - 1:
>> > word += char
>> > word = word.rstrip()
>> > list_of_strings.append(word)
>> > elif char == ",":
>> > word = word.strip()
>> > list_of_strings.append(word)
>> > word = ""
>> > elif char != " ":
>> > word += char
>> > elif char == " " and word != "" and a_str[i - 1] != " ":
>> > word += char
>> > return list_of_strings
>>
>> I think you want
>> def prestrings2list(a_str):
>> return [i.strip() for i in a_str.split(',')]
>
> Wow, Kent! Perfect except for the extra interior spaces in items.
> E.g., 'synthetic DNA'. Could you fix that?
Probably easiest to use a regular expression to fix that particular
thing, as in:
import re
mult_space = re.compile(r'\s+')
def prestrings2list(a_str):
return [re.sub(mult_space, ' ', x).strip() for x in a_str.split(',')]
Hugo
More information about the Tutor
mailing list