single
インデックスの反復処理
メニューを表示するにはスワイプしてください
前のタスクでは、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
実用例
価格リストに割引を適用するには、リストの要素を直接変更する必要があります。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)
prices[cost] -= prices[cost] * discount_factorの式は、prices[cost] = prices[cost] - prices[cost] * discount_factorと同等です。これは元の価格から割引分を差し引くことで、割引を適用します。- print文の
cost + 1は、インデックスが1からではなく0から始まるように調整しており、よりユーザーフレンドリーな表示となります。
この方法により、元のリスト prices が新しい割引後の価格で直接更新され、プログラム内のどこで prices リストが使用されても即座に変更が反映されます。
スワイプしてコーディングを開始
インデックスによる割引
インデックスの繰り返し処理を用いて、リスト内の商品の位置に応じて価格に割引率を適用します。
range()とlen()を使った for ループでpricesのインデックスを繰り返し処理。- インデックス位置に基づいて割引を適用し、各価格を
pricesリスト内で更新:インデックス0は10%、インデックス1は20%、インデックス2は15%、インデックス3は5%の割引。 - 各商品の更新後の価格を
Updated price for item {index}: ${updated_price:.2f}の形式で出力。
解答
.2f は数値を小数点以下2桁にフォーマットします(例:5 → 5.00)。使用例:updated_price[index]:.2f。
フィードバックありがとうございます!
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください