回答編集履歴
1
追記
answer
CHANGED
|
@@ -37,4 +37,41 @@
|
|
|
37
37
|
(((AAA,BBB),CCC),DDD)
|
|
38
38
|
(EEE,FFF)
|
|
39
39
|
((((AAA,BBB),CCC),DDD), (EEE,FFF))
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
追記: 邪道
|
|
43
|
+
---
|
|
44
|
+
思い付いたので書きました。真似はしない方が良いです。
|
|
45
|
+
```Python
|
|
46
|
+
import ast
|
|
47
|
+
import re
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
src = r'((((AAA,BBB),CCC),DDD), (EEE,FFF))'
|
|
51
|
+
src = re.sub(r'(\w+)', r'"\1"', src)
|
|
52
|
+
|
|
53
|
+
work = [ast.literal_eval(src)]
|
|
54
|
+
dst = []
|
|
55
|
+
|
|
56
|
+
while work:
|
|
57
|
+
tmp = work.pop()
|
|
58
|
+
dst.append(tmp)
|
|
59
|
+
|
|
60
|
+
work += [e for e in tmp if isinstance(e, tuple)]
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
dst = [
|
|
64
|
+
str(e).replace('"', '').replace("'", "")
|
|
65
|
+
for e in reversed(dst)
|
|
66
|
+
]
|
|
67
|
+
print(*dst, sep='\n')
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**実行結果** [Wandbox](https://wandbox.org/permlink/D3vRE8IVoels0cka)
|
|
71
|
+
```
|
|
72
|
+
(AAA, BBB)
|
|
73
|
+
((AAA, BBB), CCC)
|
|
74
|
+
(((AAA, BBB), CCC), DDD)
|
|
75
|
+
(EEE, FFF)
|
|
76
|
+
((((AAA, BBB), CCC), DDD), (EEE, FFF))
|
|
40
77
|
```
|