回答編集履歴

1

修正

2019/08/24 01:27

投稿

katoy
katoy

スコア22324

test CHANGED
@@ -10,21 +10,29 @@
10
10
 
11
11
  src = [
12
12
 
13
- ['a', 'b', 'c'], ['d', 'e'], ['f', 'g', 'h'], ['d', 'e'],
13
+ ['a', 'b', 'c'], ['m', 'n'], ['o'],
14
14
 
15
- ['i', 'j', 'k', 'l'], ['m', 'n'], ['o']
15
+ ['d', 'e'], ['f', 'g', 'h'], ['d', 'e'],
16
+
17
+ ['i', 'j', 'k', 'l'],
16
18
 
17
19
  ]
18
20
 
19
21
 
20
22
 
23
+
24
+
21
25
  data = sum(
22
26
 
27
+ sorted(
28
+
23
- [list(sorted(g)) for _, g in groupby(sorted(src, key=lambda x: len(x)), key=lambda x: len(x))],
29
+ [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))],
30
+
31
+ key= lambda x: (len(x), x[0])),
24
32
 
25
33
  []
26
34
 
27
- )
35
+ )
28
36
 
29
37
  print(data)
30
38
 
@@ -34,7 +42,29 @@
34
42
 
35
43
  for k, g in groupby(sorted(src, key=lambda x: len(x)), key=lambda x: len(x)):
36
44
 
45
+ print(k,sorted(list(g), key=lambda x: x[0]))
46
+
47
+
48
+
49
+ print()
50
+
51
+ 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))]
52
+
53
+ print(g)
54
+
55
+
56
+
57
+ print()
58
+
59
+ g = sorted(g, key=lambda x: [len(x), x[0][0]])
60
+
61
+ print(g)
62
+
63
+
64
+
65
+ print()
66
+
37
- print(k, list(g))
67
+ print(sum(g, []))
38
68
 
39
69
  ```
40
70
 
@@ -42,4 +72,4 @@
42
72
 
43
73
  実行例
44
74
 
45
- ![イメージ説明](af97b9161890c7184cd54c36760c6980.png)
75
+ ![イメージ説明](8fd4c1b3adacdd6000fb2f6b1105f646.png)