Humanというクラスを作り、そのクラスを使い、humansというリストを作りました。
humansリストからageに沿って並び替えをしたいというプログラムです。
並び替えのため、sorted関数を使いました。
class Human(): def __init__(self,age,name,gender): self.age = age self.name = name self.gender = gender human1 = Human(22,"mori","男") human2 = Human(20,"moriyama","男") human3 = Human(21,"moji","女") humans = [human1,human2,human3] result = sorted(humans, key=lambda t:t[0]) print(result)
エラーメッセージは以下の通りです。
Traceback (most recent call last): File "/home/ec2-user/environment/class_test.py", line 11, in <module> humanss = sorted(humans, key=lambda t:t[0]) File "/home/ec2-user/environment/class_test.py", line 11, in <lambda> humanss = sorted(humans, key=lambda t:t[0]) TypeError: 'Human' object does not support indexing
どうしてエラーになるのかを教えてください。また、sorted関数を使うときにkey=lambdaを使うとよいと知りましたが、key=lambdaのメカニズムは、tとしてhumansを引数にとり、humans[0]として、一つ目の要素、今回で言えばageを取り出すという理解でよいのでしょうか。
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/22 01:31
2018/07/22 01:36
2018/07/22 02:03
2018/07/22 02:09
2018/07/22 02:12 編集
2018/07/22 02:19
2018/07/22 02:25
2018/07/22 02:25
2018/07/22 02:36
2018/07/22 02:51
2018/07/22 02:57
2018/07/22 03:19