Question on List

subhabrata.iisc at hotmail.com subhabrata.iisc at hotmail.com
Fri Jun 27 07:22:57 EDT 2008


Hi Chris,
I solved the problem some other way round but thanx for your
suggestion, I'll review it also.
Best Regards,
Subhabrata.

Chris wrote:
> On Jun 27, 9:51�am, subhabrata.i... at hotmail.com wrote:
> > Dear All,
> > I am trying to write the following code:
> >
> > def try1(n):
> > � � � � a1="God Godess Borother Sister Family"
> > � � � � a2=a1.split()
> > � � � � a3=raw_input("PRINT A WORD")
> > � � � � a4=a1.find(a3)
> > � � � � print a4
> > � � � � a5=[]
> > � � � � if a4>0:
> > � � � � � � � � a5=a2.index(a3)
> > � � � � � � � � a6=a5+1
> > � � � � � � � � a7=a2[a6]
> > � � � � � � � � print "The new word is"
> > � � � � � � � � print a7
> > � � � � � � � � a8=a5.append(a7)
> > � � � � � � � � print a5
> > � � � � elif a4<0:
> > � � � � � � � � a11=a3
> > � � � � � � � � print "The word is not availiable in String"
> > � � � � � � � � print a11
> > � � � � � � � � a6=a5.append(a11)
> > � � � � � � � � print a5
> > � � � � else:
> > � � � � � � � � print "Error"
> >
> > Now, my question is I like to see a5 or the empty list as appended
> > with elements. Results I am getting is a5 giving single value like
> > ['God'],['Godess']... but I like to see it as ['God','Godess'...] etc.
> > Am I going wrong?
> > Do I have to rethink it in some other way?
> > If any one can kindly let me know.
> > Best Regards,
> > Subhabrata.
>
> First notes, the string .find() method return -1 for not found and
> zero or above if the search string is present.  Remember you count
> from zero.  Secondly, list .append() methods do not return a new list
> but modify the list in place.  Thirdly, the .index() method of a list
> requires an integer and not a string.  And lastly, indentation should
> be 4 spaces not 8.
>
> Just doing a sloppy job on the code (and my interpretation of what you
> wanted)
>
> def try1(n):
>     new_list = []
>     input_string="God Godess Borother Sister Family"
>     while n:
>         user_selection=raw_input("PRINT A WORD")
>         if input_string.find(user_selection) > -1:
>             s = input_string.split()
>             i = [i for i,j in enumerate(s) if j == user_selection]
>             new_word = s[i+1]
>             print 'The new word is %s' % new_word
>             new_list.append(new_word)
>             print new_list
>         else:
>             print 'User selection of "%s" not in the string.' %
> user_selection
>             new_list.append(user_selection)
>             print new_list
>         n -= 1
>
> Obviously I'm going to assume that the code you posted excluded your
> loop control for the "try n amount of times".  What was most likely
> the cause is that you loop through your structure for every attempt of
> the n times but each time you reset your list when you re-create it.
>
> Hope that helps some.
> Chris



More information about the Python-list mailing list