Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 関数内のリストの挙動 | セクション
データ分析のためのPython基礎
セクション 1.  35
single

single

book関数内のリストの挙動

メニューを表示するにはスワイプしてください

関数内でのリストの操作について説明します。数値を扱う場合と似ていますが、いくつか重要な点があります。

リストはミュータブル(可変)なため、リストを関数に直接渡すと、関数内で加えた変更が元のリストにも反映されます。

これを防ぐには、ミュータブルなデータ型に対して copy() メソッドを使用します。これにより、リストの浅いコピーが作成され、元のリストではなく複製を変更できます。これによって、関数内での変更が元のリストに影響しないようにできます。

1234567891011121314
def 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']
copy

この例では、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>

解答

Note
注意

リストを正しく変更するには、インデックスベースの反復処理を使用:for index in range(len(prices)): は要素を直接変更し、for price in prices: とは異なる動作。

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

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

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

セクション 1.  35
single

single

AIに質問する

expand

AIに質問する

ChatGPT

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

some-alt