Mark Lawrence於 2014年12月12日星期五UTC+8下午3時17分43秒寫道: > On 12/12/2014 06:22, KK Sasa wrote: > > Hi there, > > > > The list comprehension is results = [d2(t[k]) for k in xrange(1000)], where > > d2 is a function returning a list, say [x1,x2,x3,x4] for one example. So > > "results" is a list consisting of 1000 lists, each of length four. Here, > > what I want to get is the sum of 1000 lists, and then the result is a list > > of length four. Is there any efficient way to do this? Because I found it > > is slow in my case. I tried sum(d2(t[k]) for k in xrange(1000)), but it > > returned error: TypeError: unsupported operand type(s) for +: 'int' and > > 'list'. Thanks. > > > > I think you need something like this > http://stackoverflow.com/questions/19339/a-transpose-unzip-function-in-python-inverse-of-zip > > I'll let you add the finishing touches if I'm correct :) > > -- > My fellow Pythonistas, ask not what our language can do for you, ask > what you can do for our language. > > Mark Lawrence
Hi Mark and Yotam, Thanks for kind reply. I think I didn't make my problem clear enough. The slow part is "[d2(t[k]) for k in xrange(1000)]". In addition, I don't need to construct a list of 1000 lists inside, but my aim is to get the sum of all "d2(t[k])". I wonder if there is any method to sum up efficiently. -- https://mail.python.org/mailman/listinfo/python-list