2016-10-28 26 views
0

Pythonで「TypeError: 'int' obejctが呼び出し可能ではありません。」他の記事を読みましたが、どうしてこのような理由が分かりません。TypeError: 'int'オブジェクトは呼び出し可能ではありません

def sort_last(tuples): 
    sorted_tuples = [sorted(tuples,key=tuple[-1]) for tuple in tuples] 
return sorted_tuples 

それから私が得た:「例外TypeError:「int型のオブジェクトが呼び出すことはできません」の提案のために感謝し、あなたがsorted(およびsortkey引数として関数を渡す必要があり

+2

いくつかのコードを表示していただきありがとうございますが、あなたは 'tuples'オブジェクトのインスタンスをどのように表示することができますか?いくつかのサンプルデータを提供する。 –

+1

コードの3行目をインデントします。 – dannyxn

+0

あなたのコードで 'sorted'という名前の変数がありますか? –

答えて

3

コメント、max 、およびmin)。

lambda関数を使用してコードの修復されたバージョンを示します。

def sort_last(tuples): 
    sorted_tuples = [sorted(tuples,key=lambda t: t[-1]) for tuple in tuples] 
    return sorted_tuples 

しかし、そのコードはちょっと...奇妙です。それは、我々は、効率を向上させることができます動作しますが

def sort_last(tuples): 
    return sorted(tuples, key=lambda t: t[-1]) 

a = [(1,2,10), (5,6,8), (3,4,9)] 
print(sort_last(a)) 

出力

[(5, 6, 8), (3, 4, 9), (1, 2, 10)] 

:あなたの目的は、各タプルの最後の項目でタプルのリストをソートする場合は、単にこれを行うことができますitemgetter機能を使用します。

from operator import itemgetter 

def sort_last(tuples): 
    return sorted(tuples, key=itemgetter(-1)) 
+0

ありがとうございました。私はここにあなたを持っているのでとても良いです@ 2Ring – Sha

関連する問題