回答編集履歴

4

2018/11/11 03:26

投稿

hayataka2049
hayataka2049

スコア30933

test CHANGED
@@ -78,7 +78,11 @@
78
78
 
79
79
 
80
80
 
81
+ list.sortメソッドのkeyが指定されない場合、上で引用した通りリストの要素がそのまま比較されます。
82
+
83
+
84
+
81
- 単純な話で、タプル同士は比較できます。
85
+ タプル同士は比較できます。
82
86
 
83
87
 
84
88
 
@@ -92,6 +96,10 @@
92
96
 
93
97
  True
94
98
 
99
+ >>> (1,'Hoshino') < (2,'Miyamoto')
100
+
101
+ True
102
+
95
103
  ```
96
104
 
97
105
 

3

追記

2018/11/11 03:26

投稿

hayataka2049
hayataka2049

スコア30933

test CHANGED
@@ -63,3 +63,41 @@
63
63
 
64
64
 
65
65
  あと、`dict`といいつつ実体が`list`型なのも混乱する。書籍、サイト、教材等でそのコードが出てきたのなら、そこの情報は信頼できない可能性があります。
66
+
67
+
68
+
69
+ #### 補足
70
+
71
+
72
+
73
+ > 引数を渡さない場合は Index値の昇順に並び変える
74
+
75
+
76
+
77
+ について。
78
+
79
+
80
+
81
+ 単純な話で、タプル同士は比較できます。
82
+
83
+
84
+
85
+ ```python
86
+
87
+ >>> (1,2,8) > (2,5,6)
88
+
89
+ False
90
+
91
+ >>> (1,0,0) > (1,0)
92
+
93
+ True
94
+
95
+ ```
96
+
97
+
98
+
99
+ [5. データ構造 — Python 3.6.5 ドキュメント # シーケンスとその他の型の比較](https://docs.python.jp/3/tutorial/datastructures.html#comparing-sequences-and-other-types)
100
+
101
+
102
+
103
+ 詳細は割愛しますが、左側の要素から一桁ずつ比較されます。なので質問文のコードであれば、index(と便宜的に呼びますが以下略)で比較されているように見える、という訳です。

2

追記

2018/11/11 03:18

投稿

hayataka2049
hayataka2049

スコア30933

test CHANGED
@@ -50,7 +50,7 @@
50
50
 
51
51
 
52
52
 
53
- 確かに質問文のコードでは結果的にvalue(と便宜的に呼ぶことにするが、そもそもdict型ではないのでキーと値の概念はない)でソートされますが、常にそうなるわけではありません。たとえば`key=lambda x : x[0]`とすればタプルの最初の要素に対してソートされることでしょう。
53
+ 確かに質問文のコードでは結果的にvalue(と便宜的に呼ぶことにするが、そもそもdict型ではないのでキーと値の概念はない)でソートされますが、常にそうなるわけではありません。たとえば`key=lambda x : x[0]`とすればlistの要素の各タプルの最初の要素(1,2,3,4)に対してソートされることでしょう。
54
54
 
55
55
 
56
56
 

1

追記

2018/11/11 03:08

投稿

hayataka2049
hayataka2049

スコア30933

test CHANGED
@@ -1,4 +1,4 @@
1
- lambdaに関する認識がそもそも間違っていると思います。lambda式が返すのは関数そのものです。フォーマットは`lambda 引数 : 式`というものです(厳密ではありません)。
1
+ lambdaに関する認識がそもそも間違っていると思います。lambda式が返すのは関数そのものです。フォーマットは`lambda 引数 : 式`というものです(厳密ではありません)。
2
2
 
3
3
 
4
4