回答編集履歴

5

追記

2020/06/22 01:50

投稿

quickquip
quickquip

スコア11072

test CHANGED
@@ -31,3 +31,23 @@
31
31
  と書き換え可能です。
32
32
 
33
33
  (parent.left, parent.rightが属性としてもともと存在するという条件下で)
34
+
35
+
36
+
37
+ ----
38
+
39
+ 追記
40
+
41
+
42
+
43
+ クラスにsetterメソッドを用意して
44
+
45
+
46
+
47
+ ```python
48
+
49
+ (parent.set_left if node.value < parent.value else parent.set_right)(node.left)
50
+
51
+ ```
52
+
53
+ とするのが1行で書けてかつ意味論的にもわかりやすい、ちょうどいい着地点かなと思いました。

4

短くできた

2020/06/22 01:50

投稿

quickquip
quickquip

スコア11072

test CHANGED
@@ -24,8 +24,10 @@
24
24
 
25
25
  ```python
26
26
 
27
- parent.right, parent.left, *_ = (node.left, parent.left, parent.right, node.left)[(node.value < parent.value)*2:]
27
+ parent.left, parent.right, *_ = (parent.left, node.left, parent.right)[node.value < parent.value:]
28
28
 
29
29
  ```
30
30
 
31
31
  と書き換え可能です。
32
+
33
+ (parent.left, parent.rightが属性としてもともと存在するという条件下で)

3

間違ってました

2020/06/21 01:52

投稿

quickquip
quickquip

スコア11072

test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  ```python
26
26
 
27
- parent.right, parent.left, *_ = (parent.right, node.left, parent.left)[node.value < parent.value:]
27
+ parent.right, parent.left, *_ = (node.left, parent.left, parent.right, node.left)[(node.value < parent.value)*2:]
28
28
 
29
29
  ```
30
30
 

2

間違い

2020/06/21 01:41

投稿

quickquip
quickquip

スコア11072

test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  ```python
26
26
 
27
- parent.right, parent.left, *_ = (parent.right, node.left, parent.left)[node.value < parent.value]
27
+ parent.right, parent.left, *_ = (parent.right, node.left, parent.left)[node.value < parent.value:]
28
28
 
29
29
  ```
30
30
 

1

間違い

2020/06/21 01:31

投稿

quickquip
quickquip

スコア11072

test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  ```python
26
26
 
27
- parent.right, parent.left = (parent.right, node.left, parent.left)[node.value < parent.value]
27
+ parent.right, parent.left, *_ = (parent.right, node.left, parent.left)[node.value < parent.value]
28
28
 
29
29
  ```
30
30