Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ インデックスの反復処理 | セクション
データ分析のためのPython基礎
セクション 1.  28
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
Note
ノート
  • prices[cost] -= prices[cost] * discount_factor の式は、prices[cost] = prices[cost] - prices[cost] * discount_factor と同等です。これは元の価格から割引分を差し引くことで、割引を適用します。
  • print文の cost + 1 は、インデックスが 1 からではなく 0 から始まるように調整しており、よりユーザーフレンドリーな表示となります。

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

タスク

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

インデックスによる割引

インデックスの繰り返し処理を用いて、リスト内の商品の位置に応じて価格に割引率を適用します。

  1. range()len() を使った for ループで prices のインデックスを繰り返し処理。
  2. インデックス位置に基づいて割引を適用し、各価格を prices リスト内で更新:インデックス0は10%、インデックス1は20%、インデックス2は15%、インデックス3は5%の割引。
  3. 各商品の更新後の価格を Updated price for item {index}: ${updated_price:.2f} の形式で出力。

解答

Note
ノート

.2f は数値を小数点以下2桁にフォーマットします(例:55.00)。使用例:updated_price[index]:.2f

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

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

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

セクション 1.  28
single

single

AIに質問する

expand

AIに質問する

ChatGPT

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

some-alt