回答編集履歴
1
修正
answer
CHANGED
@@ -4,20 +4,35 @@
|
|
4
4
|
from itertools import groupby
|
5
5
|
|
6
6
|
src = [
|
7
|
-
['a', 'b', 'c'], ['
|
7
|
+
['a', 'b', 'c'], ['m', 'n'], ['o'],
|
8
|
-
['
|
8
|
+
['d', 'e'], ['f', 'g', 'h'], ['d', 'e'],
|
9
|
+
['i', 'j', 'k', 'l'],
|
9
10
|
]
|
10
11
|
|
12
|
+
|
11
13
|
data = sum(
|
14
|
+
sorted(
|
12
|
-
|
15
|
+
[sorted(list(g), key=lambda x: x[0]) for k, g in groupby(sorted(src, key=lambda x: len(x)), key=lambda x: len(x))],
|
16
|
+
key= lambda x: (len(x), x[0])),
|
13
17
|
[]
|
14
|
-
)
|
18
|
+
)
|
15
19
|
print(data)
|
16
20
|
|
17
21
|
print()
|
18
22
|
for k, g in groupby(sorted(src, key=lambda x: len(x)), key=lambda x: len(x)):
|
23
|
+
print(k,sorted(list(g), key=lambda x: x[0]))
|
24
|
+
|
25
|
+
print()
|
26
|
+
g = [sorted(list(g), key=lambda x: x[0]) for k, g in groupby(sorted(src, key=lambda x: len(x)), key=lambda x: len(x))]
|
27
|
+
print(g)
|
28
|
+
|
29
|
+
print()
|
30
|
+
g = sorted(g, key=lambda x: [len(x), x[0][0]])
|
31
|
+
print(g)
|
32
|
+
|
33
|
+
print()
|
19
|
-
|
34
|
+
print(sum(g, []))
|
20
35
|
```
|
21
36
|
|
22
37
|
実行例
|
23
|
-

|