Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ インデックスによるイテレーション | ループ
/
Python入門
セクション 5.  4
single

single

bookインデックスによるイテレーション

メニューを表示するにはスワイプしてください

前回の課題では、range() 関数に特定のアイテム数を指定しました。しかし、数を動的に決定する必要がある場合はどうすればよいでしょうか?ここで インデックス反復 が重要になります。

インデックス反復は、Python の基本的なテクニックであり、リスト配列などのデータ構造内の要素を、その位置によってアクセス・変更できるようにします。これは、在庫レベルの更新や食料品店の販売データ管理など、各要素を正確に制御する必要がある作業に特に役立ちます。

アレックスが、インデックスを使った反復が食料品店の例でどのように操作を簡単にできるかを実演します。

インデックスを使った反復は、リスト内の各要素のインデックスと値の両方にアクセスする必要がある場合に便利です。range()len() を組み合わせることで、リスト要素のインデックスに対応する数値のシーケンスを生成しています。この方法は、要素を位置に基づいてアクセスまたは変更する必要があるループで特に有用です。

例えば、次の for ループは、grocery_list の各要素のインデックスと値にアクセスします。

12345678
# List of grocery items grocery_list = ["Apples", "Bananas", "Carrots", "Cucumbers"] # Initialize a for loop to iterate over indexes for item in range(len(grocery_list)): print("Index:", item) print("Item:", grocery_list[item]) print("----") # Printing a divider line for clarity
copy

実用例

価格リストに割引を適用するには、リストの要素を直接変更する必要があります。for cost in prices:のような単純なループを使用すると、各アイテムのコピーしか取得できず、リスト内の実際のアイテムへの参照にはなりません。この方法で行った変更は元のリストには影響しません

pricesリストの各要素を直接更新するためには、range(len(prices))を使ってインデックスを反復処理します。これにより、各要素に割引係数を適用できます。

12345678910111213
# List of original prices of grocery items prices = [1.50, 2.00, 0.75, 3.25] # Discount factor (10% off each item) discount_factor = 0.10 # Iterate over the list of prices using range(len()) for cost in range(len(prices)): # Apply the discount by reducing the price prices[cost] -= prices[cost] * discount_factor print(f"New price of item {cost + 1}: ${prices[cost]}") print("Updated prices:", prices)
copy

注意

  • prices[cost] -= prices[cost] * discount_factor という式は、prices[cost] = prices[cost] - prices[cost] * discount_factor と同じ意味です。これは元の価格から割引分を差し引くことで、割引を適用しています。

  • print文の cost + 1 は、インデックスが 0 からではなく 1 から始まるように調整しており、よりユーザーフレンドリーな表示になります。

この方法により、元のリスト prices新しい割引後の価格で直接更新され、プログラム内のどこで prices リストが使用されても、即座に変更が反映されます。

タスク

スワイプしてコーディングを開始

この課題では、リスト内の**位置(インデックス)**に基づいて、商品価格に異なる割引率を適用します。

商品価格のリストが与えられています。それぞれの価格は、リスト内のインデックスに応じて更新する必要があります。

手順

  1. 次の価格リストから始めます:
prices = [29.99, 45.50, 12.75, 38.20]
  1. forループとrange()len()を組み合わせて、pricesリストのインデックス(インデックス0から最後まで)を繰り返し処理します。

  2. ループ内で現在のインデックスを確認し、該当する割引を適用します:

  • インデックス010%割引を適用
  • インデックス120%割引を適用
  • インデックス215%割引を適用
  • インデックス35%割引を適用
  1. 割引を適用した後、pricesリスト内の各価格を直接更新します。

  2. 価格を更新した後、次の形式で結果を出力します:

Updated price for item {index}: ${updated_price:.2f}

注記

.2fは数値を小数点以下2桁で表示する書式です(例: 55.00となります)。 f-string内で次のように使用します: {price:.2f}

解答

Switch to desktop実践的な練習のためにデスクトップに切り替える下記のオプションのいずれかを利用して、現在の場所から続行する
すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 5.  4
single

single

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

some-alt