Hi All,

I've been lurking the list for a month and this is my first post. I am
hoping this post is appropriate here, otherwise, my apologies.

 I'm somewhat new to Python, (I'm reading all the tutorials I can find,
and have read through Andre Lessa's Developers Handbook.)
I am trying to learn the Python way of thinking as well as the syntax.

I popped this bit of code together for fun, based on a previous post
regarding randomizing a word.
This shuffles a word, then splits out the vowels and then reassembles
it with the vowels interpolated between consonants.
(To create plausible sounding gibberish)

The code just seems kind of bulky to me. I am wondering, is this an
efficient way to do things, or am I making things harder than
necessary?

#--------------------------begin code------------------
"""scrambles a word, but creates plausable gibberish"""
import random
def shuffled(s):
        """ scrambles word"""
        l = list(s)
        random.shuffle(l)
        return ''.join(l)

def contains(alist,b):
        """...is letter b in list a..."""
        ret = []
        for all in alist:
                #print all
                if all==b:
                        return 1
        return 0

def newZip(a1,a2):
        """ reassemble """
        l1=len(a1)
        l2=len(a2)

        longest = [a1,a2][l1<l2]
        shortest = [a1,a2][longest == a1]
        diff = max(l1,l2)-min(l1,l2)
        #print longest
        seq = len(longest)
        ret = ""
        for j in range(seq):
                if len(longest)>0:
                        ret = ret + longest.pop()
                if len(shortest)>0:
                        ret = ret + shortest.pop()
        return ret

def reinterpolate(word):
        """ main function """
        wlist = shuffled(list(word))
        vlist = list('aeiouy') # ok, y isn't really a vowel, but...
        vees = filter(lambda x: contains(vlist,x),wlist)
        cons =  filter(lambda x: not(contains(vlist,x)),wlist)
        a=list(vees)
        b=list(cons)
        return newZip(a,b)

word = "encyclopedia"
print reinterpolate(word)

#-------------------------------end code---------------------------

BTW: I'm just curious, is there an easier way to copy-paste code
snippets from the interpreter so that it removes the '... ' and the
'>>> ' from the examples?  I'm using <cntrl-H> search and replace now
which works, but if there is a better way, I'd like to know.

thanks in advance,
-J

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to