Understanding Python Code

subhabangalore at gmail.com subhabangalore at gmail.com
Thu Jun 19 10:27:38 EDT 2014


On Thursday, June 19, 2014 7:39:42 PM UTC+5:30, Ian wrote:
> On Thu, Jun 19, 2014 at 3:48 AM, wrote:
> 
> > I am trying to see this line,
> 
> > prev_f_sum = sum(f_prev[k]*a[k][st] for k in states)
> 
> >
> 
> > a[k][st], and f_prev[k] I could take out and understood.
> 
> > Now as it is doing sum() so it must be over a list,
> 
> > I am trying to understand the number of entities in the list, thinking whether to put len(), and see for which entities it is doing the sum.
> 
> 
> 
> It's summing a generator expression, not a list.  If it helps to
> 
> understand it, you could rewrite that line like this:
> 
> 
> 
> values_to_be_summed = []
> 
> for k in states:
> 
>     values_to_be_summed.append(f_prev[k]*a[k][st])
> 
> prev_f_sum = sum(values_to_be_summed)
> 
> 
> 
> So the number of entities in the list is len(states).

Dear Group,

Thank you for your kind answer. As I put from the error I discovered it. Please see my experiment almost near to your answer. I am trying one or two questions like, why it is appending only two values at a time. If you want to assist you may kindly help me assist me.
Regards,
Subhabrata Banerjee.
*******************************************************************************
MY EXPERIMENT
*******************************************************************************
else:
		    for k in states:
			    print "YYY1",f_prev[k]
			    print "YYY2",a[k][st]
			    prev_f_sum1=f_prev[k]*a[k][st]
			    print "YYY3",prev_f_sum1
			    prev_f_sum2 = sum(f_prev[k]*a[k][st] for k in states)
			    print "YYY4",prev_f_sum2
*******************************************************************************



More information about the Python-list mailing list