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
我遇到了上面的代碼塊。如果m = 2,則返回23 4 28 5.我想知道下面指出的代碼行是如何在Python中工作的,這是函數調用嗎?或者是什麼?。你會指向我的Python 2.7手冊來解釋這個功能嗎?我很想爲這個問題需要一個更好的標題,但我不知道如何命名它,有什麼建議?瞭解Python代碼----- objs =((v [i],w [i])for i in idxs [m:])
objs = ((v[i], w[i]) for i in idxs[m:])
這是一臺發電機理解 –
的代碼是有點低效率的,因爲它可以將在整數不止一次。 –