回答編集履歴
2
クロージャの利点が活かされてなかった
answer
CHANGED
@@ -47,14 +47,14 @@
|
|
47
47
|
def debundle_list(src_list):
|
48
48
|
ret_list = []
|
49
49
|
|
50
|
-
def debundle(src
|
50
|
+
def debundle(src):
|
51
51
|
if isinstance(src, list):
|
52
52
|
for elem in src:
|
53
|
-
debundle(elem
|
53
|
+
debundle(elem)
|
54
54
|
else:
|
55
55
|
ret_list.append(src)
|
56
56
|
|
57
|
-
debundle(src_list
|
57
|
+
debundle(src_list)
|
58
58
|
return ret_list
|
59
59
|
|
60
60
|
def bundle_list(src_list, num):
|
1
追記
answer
CHANGED
@@ -39,4 +39,44 @@
|
|
39
39
|
**注意**
|
40
40
|
変数などの命名をする場合、組み込みの名前と重複しないように気を付けてください。
|
41
41
|
`list`ではなく、`tmp_list` `my_list`などを用いてください。
|
42
|
-
発見しづらいエラーの原因となります。
|
42
|
+
発見しづらいエラーの原因となります。
|
43
|
+
|
44
|
+
---
|
45
|
+
抽象化してみた。
|
46
|
+
```Python
|
47
|
+
def debundle_list(src_list):
|
48
|
+
ret_list = []
|
49
|
+
|
50
|
+
def debundle(src, dst_list):
|
51
|
+
if isinstance(src, list):
|
52
|
+
for elem in src:
|
53
|
+
debundle(elem, dst_list)
|
54
|
+
else:
|
55
|
+
ret_list.append(src)
|
56
|
+
|
57
|
+
debundle(src_list, ret_list)
|
58
|
+
return ret_list
|
59
|
+
|
60
|
+
def bundle_list(src_list, num):
|
61
|
+
ret_list = []
|
62
|
+
|
63
|
+
tmp_list = []
|
64
|
+
for i, elem in enumerate(src_list):
|
65
|
+
tmp_list.append(elem)
|
66
|
+
if i % num == num-1:
|
67
|
+
ret_list.append(tmp_list)
|
68
|
+
tmp_list = []
|
69
|
+
|
70
|
+
return ret_list
|
71
|
+
|
72
|
+
def main():
|
73
|
+
my_list = [[[0.8, '太郎', '次郎'], [0.7, '三郎', '明']], [[0.6, '花子', '咲良'], [0.9, '太郎', '翔']]]
|
74
|
+
my_list = bundle_list(debundle_list(my_list), 3)
|
75
|
+
my_list.sort()
|
76
|
+
|
77
|
+
my_list = bundle_list(my_list, 2)
|
78
|
+
print(my_list)
|
79
|
+
|
80
|
+
if __name__ == '__main__':
|
81
|
+
main()
|
82
|
+
```
|