理解python代码------objs=((v[i],w[i]),用于idxs[m:]中的i

理解python代码------objs=((v[i],w[i]),用于idxs[m:]中的i,python,python-2.7,Python,Python 2.7,我遇到了上面的代码块。如果m=2,则返回234285。我想知道下面这行代码在Python中是如何工作的,这是一个函数调用吗?还是怎样你能给我指一下Python 2.7手册吗?它解释了这个特性?这个问题我需要一个更好的标题,但我不知道怎么命名,有什么建议吗 n = 4 v = [16, 19, 23, 28] w = [2, 3, 4, 5] idxs = list(range(n)) idxs.sort(key=lambda i: v[i]/w[i], reverse=True) obj

我遇到了上面的代码块。如果m=2,则返回234285。我想知道下面这行代码在Python中是如何工作的,这是一个函数调用吗?还是怎样你能给我指一下Python 2.7手册吗?它解释了这个特性?这个问题我需要一个更好的标题,但我不知道怎么命名,有什么建议吗

n = 4
v = [16, 19, 23, 28]
w = [2, 3, 4, 5]

idxs = list(range(n))
idxs.sort(key=lambda i: v[i]/w[i], reverse=True)  

objs = ((v[i], w[i]) for i in idxs[m:]) 
for av, aw in objs:
    print av
    print aw
那是一个,有时也叫一个。最后四行代码基本上相当于

objs = ((v[i], w[i]) for i in idxs[m:])
那是一个,有时也叫一个。最后四行代码基本上相当于

objs = ((v[i], w[i]) for i in idxs[m:])

这是一个生成器理解代码有点低效,因为它多次循环整数。这是一个生成器理解代码有点低效,因为它多次循环整数。太棒了,我可以在1s内理解这段代码!谢谢你的链接!佩普叫他们@ovgolovin:谢谢你的提示!链接到这两个问题,我可以在1秒内理解这段代码!谢谢你的链接!佩普叫他们@ovgolovin:谢谢你的提示!与该问题和SO问题相关