Last value of yield statement

Dustan DustanGroups at gmail.com
Wed Oct 10 12:34:01 CEST 2007


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.




More information about the Python-list mailing list