質問するログイン新規登録

回答編集履歴

4

2018/11/11 03:26

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -38,13 +38,17 @@
38
38
 
39
39
  について。
40
40
 
41
- 単純話でタプル同士は比較できます。
41
+ list.sortメソッドのkeyが指定されい場合上で引用した通りリストの要素がそのまま比較されます。
42
42
 
43
+ タプル同士は比較できます。
44
+
43
45
  ```python
44
46
  >>> (1,2,8) > (2,5,6)
45
47
  False
46
48
  >>> (1,0,0) > (1,0)
47
49
  True
50
+ >>> (1,'Hoshino') < (2,'Miyamoto')
51
+ True
48
52
  ```
49
53
 
50
54
  [5. データ構造 — Python 3.6.5 ドキュメント # シーケンスとその他の型の比較](https://docs.python.jp/3/tutorial/datastructures.html#comparing-sequences-and-other-types)

3

追記

2018/11/11 03:26

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -30,4 +30,23 @@
30
30
  #### ところで
31
31
  `dict`という変数名は組み込みの`dict`クラスを上書きしてしまうので、使うべきではありません。
32
32
 
33
- あと、`dict`といいつつ実体が`list`型なのも混乱する。書籍、サイト、教材等でそのコードが出てきたのなら、そこの情報は信頼できない可能性があります。
33
+ あと、`dict`といいつつ実体が`list`型なのも混乱する。書籍、サイト、教材等でそのコードが出てきたのなら、そこの情報は信頼できない可能性があります。
34
+
35
+ #### 補足
36
+
37
+ > 引数を渡さない場合は Index値の昇順に並び変える
38
+
39
+ について。
40
+
41
+ 単純な話で、タプル同士は比較できます。
42
+
43
+ ```python
44
+ >>> (1,2,8) > (2,5,6)
45
+ False
46
+ >>> (1,0,0) > (1,0)
47
+ True
48
+ ```
49
+
50
+ [5. データ構造 — Python 3.6.5 ドキュメント # シーケンスとその他の型の比較](https://docs.python.jp/3/tutorial/datastructures.html#comparing-sequences-and-other-types)
51
+
52
+ 詳細は割愛しますが、左側の要素から一桁ずつ比較されます。なので質問文のコードであれば、index(と便宜的に呼びますが以下略)で比較されているように見える、という訳です。

2

追記

2018/11/11 03:18

投稿

hayataka2049
hayataka2049

スコア30939

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

1

追記

2018/11/11 03:08

投稿

hayataka2049
hayataka2049

スコア30939

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