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

回答編集履歴

4

まあいいか

2021/04/22 21:48

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
  # 追記
9
- これは外側はflattenという処理で、やり方がいろいろあったりします。
9
+ これはflattenという処理で(ただしzipを展開していないので少し特殊ですが)、やり方がいろいろあったりします。
10
10
 
11
11
  速度重視なら`itertools.chain.from_iterable`が良いとか言われていたりします。
12
12
 

3

追記

2021/04/22 21:48

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -31,4 +31,4 @@
31
31
 
32
32
  参考
33
33
  [Pythonでリストをflattenする方法まとめ - Soleil cou coup&\#233;](https://xef.hatenadiary.org/entry/20121027/p2)
34
- (ただし古い記事。これが書かれた頃からだいぶPythonの実装が変わっていると思いますが、今の環境での最速の方法は調べていません)
34
+ (ただし古い記事。これが書かれた頃からだいぶPythonの実装が変わっていると思いますが、今の環境での最速の方法は調べていません。でも、基本的な考え方はさほど変わらないでしょう

2

追記

2021/04/22 21:41

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -31,4 +31,4 @@
31
31
 
32
32
  参考
33
33
  [Pythonでリストをflattenする方法まとめ - Soleil cou coup&\#233;](https://xef.hatenadiary.org/entry/20121027/p2)
34
- (ただし古い記事。だいぶPythonの実装が変わっていると思いますが、今の環境での最速は計測して調べていません)
34
+ (ただし古い記事。これが書かれた頃からだいぶPythonの実装が変わっていると思いますが、今の環境での最速の方法は調べていません)

1

追記

2021/04/22 21:40

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -2,4 +2,33 @@
2
2
 
3
3
  ```python
4
4
  D = [y for x in zip(A, B, C) for y in x]
5
- ```
5
+ ```
6
+
7
+
8
+ # 追記
9
+ これは外側はflattenという処理で、やり方がいろいろあったりします。
10
+
11
+ 速度重視なら`itertools.chain.from_iterable`が良いとか言われていたりします。
12
+
13
+ ```
14
+ from itertools import chain
15
+
16
+ n = 10 ** 5
17
+ A = list(range(n))
18
+ B = list(range(n, 2*n))
19
+ C = list(range(2*n, 3*n))
20
+
21
+ %%timeit -n 100
22
+ D = [y for x in zip(A, B, C) for y in x]
23
+
24
+ 12.5 ms ± 627 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
25
+
26
+ %%timeit -n 100
27
+ D = list(chain.from_iterable(zip(A, B, C))) # listに変換しないと駄目です
28
+
29
+ 6.79 ms ± 188 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
30
+ ```
31
+
32
+ 参考
33
+ [Pythonでリストをflattenする方法まとめ - Soleil cou coup&\#233;](https://xef.hatenadiary.org/entry/20121027/p2)
34
+ (ただし古い記事。だいぶPythonの実装が変わっていると思いますが、今の環境での最速は計測して調べていません)