質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

while

Whileは多くの言語で使われるコントロール構造であり、特定の条件が満たされる限り一連の命令を繰り返し実行します。

Q&A

解決済

2回答

210閲覧

思った通りにWhile文が機能しない。

shin_shin

総合スコア96

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

while

Whileは多くの言語で使われるコントロール構造であり、特定の条件が満たされる限り一連の命令を繰り返し実行します。

0グッド

0クリップ

投稿2018/11/23 06:57

下記の「欲しい出力」が実行できるコードを教えていただきたいです。

下記のコードを実行したとき、永遠に0と1が出力され続けます。
どのように変更すれば、欲しい出力を得ることができますか?

Python

1# 2list_num = [[0, 1], [2, 3], [4, 5, 6], [7, 8, 9], [10,11,12], [13,14,15]] 3 4for i, each in enumerate(list_col_num): 5 print(i) 6 while i < 2: 7 print(each[0]) 8 print(each[1]) 9 else: 10 print(each[0]) 11 print(each[1]) 12 print(each[2])

欲しい出力

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

3 つの方法で書いてみました。

x.py

python3

1from itertools import chain 2 3list_num = [[0, 1], [2, 3], [4, 5, 6]] 4 5for each in list_num: 6 for x in each: 7 print(x) 8print() 9 10[print(x) for ary in list_num for x in ary] 11print() 12 13[print(x) for x in chain.from_iterable(list_num)]

実行例
イメージ説明

投稿2018/11/23 08:34

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

Python

for i, each in enumerate(list_col_num):
print(i)
while i < 2:
print(each[0])
print(each[1])
...

whileブロック内で i の値が更新されていないので、無限ループしています。
単に i の値に依って処理を分岐したいだけなら、whileではなくifを使ってください。

また、リスト長を判定に用いたいなら i ではなく len(each) の値を用いた方が良いのでは。


欲しい出力を得るための方針は、ぱっと思いつく限り三つあります。
0. 内部リスト長に応じて処理を分岐
おそらくご提示のコードで目指している実装です。
ただ、前以てリスト長の範囲が定まっている必要がある他、やや冗長です。
0. 二重ループを用いる方法
内部リストの長さを限定しない、おそらく一番ニュートラルな解き方です。
ネストがやや深くなるのが欠点です。
0. リストを平坦化(flatten)する方法
先に一次元のリストにぐしゃっと潰してからループする方法です。
抽象度が高いので、ある程度慣れている人ならこの方法も検討するかと思います。

投稿2018/11/23 07:02

編集2018/11/23 07:09
LouiS0616

総合スコア35658

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問