回答編集履歴

3

追記

2018/11/23 07:09

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -46,4 +46,4 @@
46
46
 
47
47
  先に一次元のリストにぐしゃっと潰してからループする方法です。
48
48
 
49
- ある程度慣れている人ならこの方法も検討するかと思います。
49
+ 抽象度が高いので、ある程度慣れている人ならこの方法も検討するかと思います。

2

追記

2018/11/23 07:09

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -23,3 +23,27 @@
23
23
 
24
24
 
25
25
  また、リスト長を判定に用いたいなら i ではなく len(each) の値を用いた方が良いのでは。
26
+
27
+
28
+
29
+ ---
30
+
31
+ 欲しい出力を得るための方針は、ぱっと思いつく限り三つあります。
32
+
33
+ 0. **内部リスト長に応じて処理を分岐**
34
+
35
+ おそらくご提示のコードで目指している実装です。
36
+
37
+ ただ、前以てリスト長の範囲が定まっている必要がある他、やや冗長です。
38
+
39
+ 0. **二重ループを用いる方法**
40
+
41
+ 内部リストの長さを限定しない、おそらく一番ニュートラルな解き方です。
42
+
43
+ ネストがやや深くなるのが欠点です。
44
+
45
+ 0. **リストを平坦化(flatten)する方法**
46
+
47
+ 先に一次元のリストにぐしゃっと潰してからループする方法です。
48
+
49
+ ある程度慣れている人なら、この方法も検討するかと思います。

1

追記

2018/11/23 07:07

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -19,3 +19,7 @@
19
19
  whileブロック内で i の値が更新されていないので、無限ループしています。
20
20
 
21
21
  単に i の値に依って処理を分岐したいだけなら、whileではなくifを使ってください。
22
+
23
+
24
+
25
+ また、リスト長を判定に用いたいなら i ではなく len(each) の値を用いた方が良いのでは。