Richard D. Moores 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


The idea for this came from looking at the interests of bloggers on a
blogging site. Some have a great many interests listed -- so many that I
thought it would handy to have a function that could put them in a Python
list so they could be counted, sorted, dupes weeded out, etc.

For example, here's a shorter one that I copied and pasted, modified, and
then pasted again into a pair of quotes, thereby creating one long Python
string:

a_str = "blender , synthetic   DNA, myrmecology, fungi, quorum sensing,
theoretical physic's, reason, love, hope, virtual reality, google operating
system, space, life, mystery, truth's, universe, immortality, strangeness,
fun ,living, hope, eternity, knowledge, Egyptian secrets of the dead,
n-space, hyper-time , theory of everything, light, nuclear theory, particle
theory, myrmec, self replicating RNA, MMOG, MMOR%PG, symbiosis,Black's
Plague, selddir, Da Vinci, Newton, Archimedes, Cantor7,
Leibnitz,myrmecology"

prestrings2list(a_str)  returns

['blender', 'synthetic DNA', 'myrmecology', 'fungi', 'quorum sensing',
"theoretical physic's", 'reason', 'love', 'hope', 'virtual reality', 'google
operating system', 'space', 'life', 'mystery', "truth's", 'universe',
'immortality', 'strangeness', 'fun', 'living', 'hope', 'eternity',
'knowledge', 'Egyptian secrets of the dead', 'n-space', 'hyper-time',
'theory of everything', 'light', 'nuclear theory', 'particle theory',
'myrmec', 'self replicating RNA', 'MMOG', 'MMOR%PG', 'symbiosis', "Black's
Plague", 'selddir', 'Da Vinci', 'Newton', 'Archimedes', 'Cantor7',
'Leibnitz', 'myrmecology']

This is exactly what I wanted, but please tell me if the function name makes
any sense, and if the function could be made to conform better to standard
Python practice. And what a good docstring for it might be.


I've assumed that the items in these strings will be separated by commas.
But there could be some using semicolons instead. That revision will be easy
to make.


Thanks, Tutors,


Dick Moores

Seems to me the function would be much simpler using the string method .split() Something like:

 def myfunc(a_str):

  list_of_strings = a_str.split(",")

     return list_of_strings
Now, if you want to also allow semicolons, you could pre-translate any semicolons to commas (using replace()). And if you need to strip leading and trailing whitespace, you could do a separate pass over the list.

DaveA

_______________________________________________
Tutor maillist  -  [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to