セクション 1. 章 35
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: とは異なる動作。
すべて明確でしたか?
フィードバックありがとうございます!
セクション 1. 章 35
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください