teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

説明文修正

2021/02/23 05:29

投稿

teamikl
teamikl

スコア8817

answer CHANGED
@@ -39,7 +39,7 @@
39
39
  ```
40
40
 
41
41
 
42
- 計算量自体は変わらないので、大規模なデータの扱いに対する回答ではありません。
42
+ 計算量のオーダー自体は変わらないので、大規模なデータの扱いに対する回答ではありません。
43
43
  明らかに冗長で効率化・改善が可能な部分の指摘です。
44
44
 
45
45
 

2

簡略化したコードの追加

2021/02/23 05:29

投稿

teamikl
teamikl

スコア8817

answer CHANGED
@@ -28,9 +28,14 @@
28
28
  tree.insert("", "end", values=row)
29
29
 
30
30
  # 中の要素を編集したい場合は
31
-
32
31
  for num, name, text in items:
33
32
  tree.insert("", "end", values=(num, name, text))
33
+
34
+ # 事前リストを作らず
35
+ def tree_insert(self):
36
+ tree_insert = self.tree.insert # ループ内で呼び出すメソッドをローカル変数に入れておく
37
+ for i in range(10000):
38
+ tree_insert("", "end", values=(i, "犬", "ワンと鳴く"))
34
39
  ```
35
40
 
36
41
 

1

不要なコードの削除

2021/02/23 05:26

投稿

teamikl
teamikl

スコア8817

answer CHANGED
@@ -33,17 +33,7 @@
33
33
  tree.insert("", "end", values=(num, name, text))
34
34
  ```
35
35
 
36
- テスト用のデータであれば、ジェネレータにすれば事前のリストは作らずに済ませられます。
37
36
 
38
- ```python
39
- def generate_tree_items(count):
40
- for i in range(count):
41
- yield (i, "犬", "ワンと鳴く")
42
-
43
- for row in generate_tree_items(10000):
44
- tree.insert("", "end", values=row)
45
- ```
46
-
47
37
  計算量自体は変わらないので、大規模なデータの扱いに対する回答ではありません。
48
38
  明らかに冗長で効率化・改善が可能な部分の指摘です。
49
39