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 のマニュアルを教えてください。この質問には適切なタイトルが必要ですが、名前を付ける方法がわかりません。何か提案はありますか?
objs = ((v[i], w[i]) for i in idxs[m:])