私は 3 タプルの配列を持っており、Python の各タプルの要素の積の降順でソートしたいと考えています。したがって、たとえば、配列が与えられた場合
[(3,2,3), (2,2,2), (6,4,1)]
3*2*3 = 18、2*2*2 = 8、6*4*1 = 24 なので、最終結果は次のようになります。
[(6,4,1)、(3,2,3)、(2,2,2)]
たとえば、タプルの最初の要素で並べ替える方法は知っていますが、これに取り組む方法がわかりません。どんな助けでも大歓迎です。ありがとう!
In [176]: L = [(3,2,3), (2,2,2), (6,4,1)]
In [177]: L.sort(key=lambda (a,b,c):a*b*c, reverse=True)
In [178]: L
Out[178]: [(6, 4, 1), (3, 2, 3), (2, 2, 2)]
>>> from operator import mul
>>> input_list = [(3,2,3), (2,2,2), (6,4,1)]
>>> input_list.sort(key=lambda tup: reduce(mul,tup))
>>> print input_list
[(2, 2, 2), (3, 2, 3), (6, 4, 1)]