回答編集履歴

3

説明文修正

2021/02/23 05:29

投稿

teamikl
teamikl

スコア8664

test CHANGED
@@ -80,7 +80,7 @@
80
80
 
81
81
 
82
82
 
83
- 計算量自体は変わらないので、大規模なデータの扱いに対する回答ではありません。
83
+ 計算量のオーダー自体は変わらないので、大規模なデータの扱いに対する回答ではありません。
84
84
 
85
85
  明らかに冗長で効率化・改善が可能な部分の指摘です。
86
86
 

2

簡略化したコードの追加

2021/02/23 05:29

投稿

teamikl
teamikl

スコア8664

test CHANGED
@@ -58,11 +58,21 @@
58
58
 
59
59
  # 中の要素を編集したい場合は
60
60
 
61
-
62
-
63
61
  for num, name, text in items:
64
62
 
65
63
  tree.insert("", "end", values=(num, name, text))
64
+
65
+
66
+
67
+ # 事前リストを作らず
68
+
69
+ def tree_insert(self):
70
+
71
+ tree_insert = self.tree.insert # ループ内で呼び出すメソッドをローカル変数に入れておく
72
+
73
+ for i in range(10000):
74
+
75
+ tree_insert("", "end", values=(i, "犬", "ワンと鳴く"))
66
76
 
67
77
  ```
68
78
 

1

不要なコードの削除

2021/02/23 05:26

投稿

teamikl
teamikl

スコア8664

test CHANGED
@@ -68,26 +68,6 @@
68
68
 
69
69
 
70
70
 
71
- テスト用のデータであれば、ジェネレータにすれば事前のリストは作らずに済ませられます。
72
-
73
-
74
-
75
- ```python
76
-
77
- def generate_tree_items(count):
78
-
79
- for i in range(count):
80
-
81
- yield (i, "犬", "ワンと鳴く")
82
-
83
-
84
-
85
- for row in generate_tree_items(10000):
86
-
87
- tree.insert("", "end", values=row)
88
-
89
- ```
90
-
91
71
 
92
72
 
93
73
  計算量自体は変わらないので、大規模なデータの扱いに対する回答ではありません。