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

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

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

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

780閲覧

for 文の練習問題で躓いています

CAZ

総合スコア8

for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/10/30 15:04

サンプルコード↓

num_list = [1,2,3] for index,num in enumerate(num_list): print("index", + str(index) + ":" + str(num))

処理結果↓

index 0: 1 index 0: 2 index 0: 3

Python を学ぶ教材を進めています。そこで上記のようなサンプルコードが出てきました。

上記コードで num が何を指しているのか分かりません。
index はわかります。リストの index を指しています。
num は、num_list に代入されたリストの要素の一つを指しているのでしょうか?

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

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

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

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

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

1T2R3M4

2021/10/30 15:13

>Python を学ぶ教材を進めています。 その教材ではそれまでにどのような説明がされていましたか。
etherbeg

2021/11/01 12:36

疑問は解消されたでしょうか? 問題が解決したら、質問のステータスを「受付中」から「解決済」に変更しておいてください。まだ回答を望んでいるのなら、その理由を質問文なり回答へのコメントなりに追記してください。
CAZ

2021/11/02 13:18

>1T2R3M4 回答が遅くなり申し訳ございませんでした。問題文が掲載されていた箇所を忘れてしまい、探すのに時間がかかっておりました。ご質問いただきありがとうございました。
CAZ

2021/11/02 13:18

>etherbeg 失礼いたしました。解決済にいたしました。
guest

回答2

0

ベストアンサー

まず、その出力は間違えています。本当にその出力が出たのでしょうか?
こちらでやると以下のようになります。

python

1index0:1 2index1:2 3index2:3

こうなることを前提に話をします。

enumerateについて

enumarateは、引数に与えられたリスト様の物について、デフォルトでは0から順に数字をくっつけて返すものです。 その値がリストの何番目にあるかをループの中で使いたいときり使われることが多いです。

enamerate(['リンゴ', 'ミカン', 'カキ', 'ナシ'])とすると、リストの内容に0から順に数字を割り当ててペアにして返します。
結果は、(0, 'リンゴ'), (1, 'ミカン'), (2, 'カキ'), (3, 'ナシ')のようなリストになります。

このとき、ennumarateにリストを渡して、番号の初期値を指定しなかったので、数字がリンゴなどの値のリストのインデックスと同じになっていますが、これは、そうなっているだけで、enumerateが付ける数字とリストのインデックスとは関係がありません
たとえば、初期値を10とするには、enamerate(['リンゴ', 'ミカン', 'カキ', 'ナシ'], start=10)とします。すると結果は、(10, 'リンゴ'), (11, 'ミカン'), (12, 'カキ'), (13, 'ナシ') のようになります。

for文の変数について

pythonではfor文に複数の変数を与えると、取り出されたリストやタプルのそれぞれの対応する値にわりあてることができます。

先程の例をfor文で回すと、

python

1for num,name in enumerate(['リンゴ', 'ミカン', 'カキ', 'ナシ']): 2 print(f'num: {num}, name: {name}')

出力は

text

1num: 0, name: リンゴ 2num: 1, name: ミカン 3num: 2, name: カキ 4num: 3, name: ナシ

となります。

投稿2021/10/31 08:10

TakaiY

総合スコア12657

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

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

CAZ

2021/11/01 11:56

ご回答ありがとうございます。参考にさせていただきます。
guest

0

  • index はわかります。リストの index を指しています。

結果としてはそうなりますが、意味としてはそうではありません。

意味としてそうではないというのは以下のようにリストではなく辞書の場合を見るとわかります。

python

1>>> dct = {'山': 'mountain', '川': 'river'} 2>>> for i, key in enumerate(dct): 3... print(i, key, dct[key]) 4... 50 山 mountain 61 川 river

辞書についてindexは存在しませんから、indexだと考えるのは意味が無いですね。

公式ドキュメント enumerateに説明がありますが、少し分かりにくいと思います。

  • num は、num_list に代入されたリストの要素の一つを指しているのでしょうか?

num_listの値であるリストの一つ一つの要素となります。

enumerateを使わないfor文で、意味を理解してから、enumerateを使うfor文の練習をすることをお勧めします。

投稿2021/10/30 15:26

編集2021/10/30 15:49
ppaul

総合スコア24666

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

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

CAZ

2021/11/01 11:55

ご回答ありがとうございます。参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問