Last value of yield statement

Shriphani shriphanip at gmail.com
Wed Oct 10 06:47:40 EDT 2007


On Oct 10, 3:34 pm, Dustan <DustanGro... at gmail.com> wrote:
> On Oct 10, 5:19 am, Shriphani <shripha... at gmail.com> wrote:
>
> > Hello all,
>
> > Let us say I have a function like this:
>
> > def efficientFiller(file):
>
> Note that you are shadowing the built-in variable 'file' here. Better
> use 'filename', or something to that effect.
>
>
>
> >         worthless_list = []
> >         pot_file = open(file,'r')
> >         pot_file_text = pot_file.readlines()
> >         for line in pot_file_text:
> >                 if line.find("msgid") != -1:
> >                         message_id = shlex.split(line)[1]
> >                         if message_id in dictionary:
> >                                 number = pot_file_text.index(line)
> >                                 corresponding_crap =
> > dictionary.get(message_id)
> >                                 final_string = 'msgstr' + " " + '"' +
> > corresponding_crap + '"' + '\n'
> >                                 pot_file_text[number+1] = final_string
> >                                 yield pot_file_text
>
> > efficient_filler =  efficientFiller("libexo-0.3.pot")
> > new_list = list(efficient_filler)
> > print new_list
>
> > I want to plainly get the last value the yield statement generates.
> > How can I go about doing this please?
>
> > Regards,
> > Shriphani Palakodety
>
> efficient_filler =  efficientFiller("libexo-0.3.pot")
> new_list = list(efficient_filler)
> last_value = new_list[-1]
> print last_value
>
> # OR
>
> efficient_filler =  efficientFiller("libexo-0.3.pot")
> for last_value in efficient_filler: pass
> print last_value
>
> The latter assumes that the last value is the only value you want.

Hello again,

Well the basic trouble is that the yield statement you see there
causes it to print the list over and over again when a string
containing "msgid" is found and the subsequent conditions are
satisfied. I just want the last list the yield statement generates. I
don't want the last element of the list generated. just the last
statement.
Regards,
Shriphani Palakodety




More information about the Python-list mailing list