セクション 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つを試してチャットを始めてください