回答編集履歴

4

っっっd

2018/12/11 10:30

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -1,8 +1,8 @@
1
- **降順ソート**すると配列は値が小さい順に並ぶので、末尾から10個を [-10:] と取り出せばいいのではないでしょうか?
2
-
3
- ちなみに降順ソートなら `-x[1]` でなく、`x[1]` だと思います。
1
+ 降順ソートなら `-x[1]` でなく、`x[1]` だと思います。
4
2
 
5
3
  `-x[1]` だと昇順ソートになります。
4
+
5
+ sorted() はデフォルトで降順ソートですが、reverse=True とすると、昇順ソートになります。
6
6
 
7
7
 
8
8
 
@@ -12,8 +12,14 @@
12
12
 
13
13
 
14
14
 
15
- words = sorted(words.items(), key=lambda x: x[1])[:2]
15
+ # 下位2個を取り出す。
16
16
 
17
- print(words) # [('apple', -1), ('banana', 2)]
17
+ print(sorted(words.items(), key=lambda x: x[1])[:2]) # [('apple', -1), ('banana', 2)]
18
+
19
+
20
+
21
+ # 上位2個を取り出す。
22
+
23
+ print(sorted(words.items(), key=lambda x: x[1], reverse=True)[:2]) # [('orange', 5), ('banana', 2)]
18
24
 
19
25
  ```

3

d

2018/12/11 10:30

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -1,4 +1,4 @@
1
- ソートしたあとに [:10] とすれいのではないでしょうか?
1
+ **降順ソート**する配列は値が小さい順並ぶので、末尾から10個を [-10:] と取り出せばいのではないでしょうか?
2
2
 
3
3
  ちなみに降順ソートなら `-x[1]` でなく、`x[1]` だと思います。
4
4
 

2

d

2018/12/11 10:26

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -14,6 +14,6 @@
14
14
 
15
15
  words = sorted(words.items(), key=lambda x: x[1])[:2]
16
16
 
17
- print(words) # [('orange', 5), ('banana', 2)]
17
+ print(words) # [('apple', -1), ('banana', 2)]
18
18
 
19
19
  ```

1

f

2018/12/11 10:24

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -1,4 +1,8 @@
1
1
  ソートしたあとに [:10] とすればよいのではないでしょうか?
2
+
3
+ ちなみに降順ソートなら `-x[1]` でなく、`x[1]` だと思います。
4
+
5
+ `-x[1]` だと昇順ソートになります。
2
6
 
3
7
 
4
8
 
@@ -8,7 +12,7 @@
8
12
 
9
13
 
10
14
 
11
- words = sorted(words.items(), key=lambda x: x[1], reverse=True)[:2]
15
+ words = sorted(words.items(), key=lambda x: x[1])[:2]
12
16
 
13
17
  print(words) # [('orange', 5), ('banana', 2)]
14
18