セクション 6. 章 4
single
関数内のリストの挙動
メニューを表示するにはスワイプしてください
関数内でのリストの操作について説明します。数値を扱う場合と似ていますが、いくつか重要な点があります。
リストはミュータブル(可変)であり、リストを関数に直接渡すと、関数内で行った変更が元のリストにも影響します。
これを防ぐには、ミュータブルなデータ型に対して copy() メソッドを使用します。これにより、リストの浅いコピーが作成され、元のリストではなく複製を変更できます。これによって、関数内での変更が元のリストに影響しないようにできます。
1234567891011121314def add_strawberry(original_list): list_copy = original_list.copy() # Create a copy of the original list list_copy.append("Strawberry") # Modify the copied list return list_copy # Original list fruits = ["Apple", "Banana", "Cherry"] # Call the function new_fruits = add_strawberry(fruits) # Check the results print("Original list:", fruits) # ['Apple', 'Banana', 'Cherry'] print("Modified list:", new_fruits) # ['Apple', 'Banana', 'Cherry', 'Strawberry']
この例では、fruits を使用したため、元の copy() リストは変更されていません。copy() を使わずに関数内でリストを変更すると、元の fruits リストも変更されてしまいます。
タスク
スワイプしてコーディングを開始
元のリストを変更せずに、$2.00 を超える商品価格に10%割引を適用する関数の作成。
apply_discount(prices)という関数を定義し、価格のリストを引数として受け取る。- 関数内で
pricesのコピーを作成し、prices_copyに代入する。 - インデックス付きの
forループ(range(len(prices_copy)))を使用して、コピーしたリストを走査する。 - 価格が
2.00より大きい場合、10%の割引を適用する。 - 更新された
prices_copyリストを返す。
出力要件
- 関数は割引後の新しいリストを返すこと。
- 結果の出力例:
Updated product prices: <$updated_prices>
注意
インデックスベースのイテレーションを使用してリストを正しく変更すること:
for index in range(len(prices)):は要素を直接変更できるが、for price in prices:ではできない。
解答
すべて明確でしたか?
フィードバックありがとうございます!
セクション 6. 章 4
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください