回答編集履歴

3

追記

2020/10/20 23:21

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -75,3 +75,35 @@
75
75
  print(lst)
76
76
 
77
77
  ```
78
+
79
+
80
+
81
+ ---
82
+
83
+ **追記**:
84
+
85
+ lehshellさんの回答を見て、同じ頻度の『長さ』への考慮が足りなかったことに気付きました。
86
+
87
+ C)のソートは次の二段階に分けると良いですね。
88
+
89
+ ```Python
90
+
91
+ lst.sort(key=len)
92
+
93
+ lst.sort(key=lambda s: counter[len(s)], reverse=True)
94
+
95
+ print(lst)
96
+
97
+ ```
98
+
99
+
100
+
101
+ あるいはキー関数でタプルを返しても良いです。
102
+
103
+ ```Python
104
+
105
+ lst.sort(key=lambda s: (-counter[len(s)], len(s)))
106
+
107
+ print(lst)
108
+
109
+ ```

2

誤字

2020/10/20 23:21

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -32,7 +32,7 @@
32
32
 
33
33
 
34
34
 
35
- (大文字が頭文字以外に入る予知があるのなら、A)B)は一括した方が楽でしょう。)
35
+ (大文字が頭文字以外に入る余地があるのなら、A)B)は一括した方が楽でしょう。)
36
36
 
37
37
 
38
38
 

1

追記

2020/10/20 09:37

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  # 優先順位が高い条件のソートほど後に行うようにします。
18
18
 
19
- lst.sort(key=...) # A) 大文字が先、小文字が後にソート
19
+ lst.sort(key=...) # A) 頭文字を見て、大文字が先、小文字が後にソート
20
20
 
21
21
  lst.sort(key=...) # B) アルファベット順にソート(大文字小文字は無視)
22
22
 
@@ -29,6 +29,10 @@
29
29
  A)B)については試行錯誤してみてほしいです。
30
30
 
31
31
  C)についてはちょっとめんどくさいので解説します。
32
+
33
+
34
+
35
+ (大文字が頭文字以外に入る予知があるのなら、A)B)は一括した方が楽でしょう。)
32
36
 
33
37
 
34
38