問題
与えられた氏名のリストから、一つずつ各要素の順番と氏名を出力するプログラムを作りたい。
期待する結果を出力するにあたって、プログラム①の[問題コード]の部分に入る適切なコードとして、適切なものはどれか。
プログラム①:
arr = ['田中', '川本', '長瀬', '佐藤'] [問題コード] print(i, v)
期待する結果:
0 田中 1 川本 2 長瀬 3 佐藤
選択肢
(a) for i in enumerate(arr):
(b) for i, v in enumerate(arr):
(c) for i in range(arr):
(d) for i, v in range(arr):
- a
- b
- c
- d
Python for文(1)enumerate()
答え
(b)
解説
enumerate()は、Pythonに標準的に用意されている組み込み関数の一つです。
enumerate()に引数としてリストを与えると、次のようなenumerateオブジェクトが返ってきます。
コード:
arr = ['田中', '川本', '長瀬', '佐藤'] print(enumerate(arr)) # enumerate()の返り値をそのまま出力 print(list(enumerate(arr))) # enumerate()の返り値(enumerateオブジェクト)をlist型にキャスト
出力:
<enumerate object at 0x14964f151c40> [(0, '田中'), (1, '川本'), (2, '長瀬'), (3, '佐藤')]
上記の結果からもわかるように、enuemrate()を使うことで、リストの各要素に順番を付加したオブジェクトを作成することができます。
enumerate()は、主にfor文とセットで使われます。通常のfor文処理とenumerate()を使ったfor文処理の何が違うのかを、具体的に見てみましょう。
リストをそのままfor文を使って通常の繰り返し処理した場合には、次のような結果になります。
コード:
arr = ['田中', '川本', '長瀬', '佐藤'] for i in arr: print(i)
出力:
田中 川本 長瀬 佐藤
この状態では、繰り返し文の中で、「この要素はループの何番目なのか?」を知ることができません。実務の場では、リストの要素数が1,000個や10,000個を超えることや、今の要素が何番目なのかを知りたくなる場合があるので、このままでは不便です。
そこで、enumerate()を使うことで、この問題を解決することができます。
コード:
arr = ['田中', '川本', '長瀬', '佐藤'] for i, v in enumerate(arr): print(i, v)
出力:
0 田中 1 川本 2 長瀬 3 佐藤
テスト一覧
スキルテストが提供しているテストの一覧です。ぜひ学習や実力チェックに役立ててください。
- Pythonテスト
- ビジネス基礎力診断テスト
- 英語会計 理解度テスト(USCPA FAR対応)
- 世界の国旗当てクイズ
- アメリカ合衆国の州旗当てクイズ
- 金融リテラシーテスト
- Pythonテスト【初級者向け】
- 論理力レベルチェック
- HTMLタグ理解度チェック
- 天文宇宙テスト
- Linux理解度チェック
- 関西弁テスト
- 魚の漢字クイズ検定
- 元素記号テスト・検定
- 四字熟語テスト
- 日本歴史テスト
- 山手線検定
- 北海道弁テスト
- 博多弁テスト
- 京都弁テスト
- 神奈川の方言テスト
- 長野県方言・信州弁テスト
- 沖縄弁(うちなーぐち) テスト
- 広島弁テスト
- 青森の方言(津軽弁)テスト
- Pythonテスト【本番モード】
- 猫種検定
- 日本の方言テスト
- 犬種検定
- 仮想通貨スキル診断
- 寺院・神社当て検定
- うさぎ当て検定
- 寺院・神社当て検定 <関東版>
- Pythonスキルチェック<組み込み関数編>
- Python3×データサイエンス試験
- 化学物質検定
- 花クイズ
- ディズニーテスト
- 現代建築物検定
- ドメインテスト
- 日本の偉人クイズ
- 素数テスト
- Japanese Famous Kanji Exam
- Japanese Animal Kanji Exam
- 富山弁テスト
- 八丈方言クイズ
- 讃岐弁クイズ(香川県)
- 英語クイズ 国名
- 国コードテスト (2文字版)
- 国コードテスト (3文字版)
- 魚の英語クイズ
- 英語(花)クイズ
- 英語(植物)クイズ
- 英語(宇宙)クイズ
- 地名読み方クイズ(市区町村)
- 英語(料理名)クイズ
- 英語(元素名)クイズ
- 鹿児島方言テスト
- 英文読解問題 中学生レベル
- 英語クイズ 感染症
- 英語クイズ 不動産
- 日本の方言 大分弁クイズ