コンテンツ

Python速習ガイド - ステップ1 基本的な文法とデータ型 (7) - リスト (3)

Info
  • 本講座は、Pythonプログラミングの基礎を手を動かしながら最速で身につけるための講座です。
  • 「スタイルガイド」では、Pythonできれいなコードを書くためのガイドライン(PEP8)で紹介されている内容を主に記載しています。
  • 各コードは実行して結果を確認することができます。
    ページの再読み込みで元の内容に戻りますので、自由にいじってみてください。

「ステップ1 基本的な文法とデータ型」の続きです。

  • sum 関数はリスト内の数値の合計を計算します。
  • min(max)関数はリスト内の最小値(最大値)を計算します。
  • sorted関数を使用すると、リストの要素を昇順にソートしたリストが取得できます。
    • パラメータで、reverse=Trueを指定すると降順のリストが得られます。
    • 元のリストは変更されず、新しいリストを返します。
  • sorted関数は数値のリスト以外にも、順序の定義されている型のリストに適用可能です。
  • all関数を使用すると、リスト内のすべての値がTrueである場合にTrueを、そうでない場合にFalseを返します。
    • 最初の要素からチェックしていき、Falseを見つけた時点でFalseを返します。
      (残りの要素はチェックされません)
  • ブール値ではないリストに適用すると、要素を(bool関数を適用して)ブール値であると解釈して処理されます。
  • any関数を使用すると、リスト内のいずれかの値がTrueである場合にTrueを、そうでない場合にFalseを返します。
    • 最初の要素からチェックしていき、Trueを見つけた時点でTrueを返します。
      (残りの要素はチェックされません)
  • ブール値ではないリストに適用すると、要素を(bool関数を適用して)ブール値であると解釈して処理されます。
空リストに対する各関数の挙動
  1. sum 関数
    • 空リスト([])に対して、 sum 関数は 0 を返します。
  1. min(max)関数
    • 空リスト([])に対して、 minmax 関数は ValueError を発生させます。
  1. all 関数
    • 空リスト([])に対して、 all 関数は True を返します。
      • これは「空リスト内のすべての要素が真」という命題が真となるためです。
        (反例が存在しないため)
  1. any 関数
    • 空リスト([])に対して、 any 関数は False を返します。
      • これは「空リスト内に真の要素が1つ以上ある」という命題が偽となるためです。

ここまで見てきたリストに関する操作について、練習問題を解いてみましょう。

📚練習問題1: 買い物リストの管理

あなたは買い物リストを管理するプログラムを作っています。
以下の操作を順番に実行し、最終的な買い物リストを表示しましょう。

  • 最初の買い物リスト: ["milk", "bread", "eggs", "cheese", "butter"]
  1. 「eggs」が既にリストにあるか確認し、結果を表示してください
  2. 「coffee」をリストの最後に追加してください
  3. 「bread」の位置に「rice」を挿入し、元の「bread」は削除してください
  4. リストの最初の商品と最後の商品を取り出してその商品を画面に表示し、残りを新しいリストとして作成してください
  5. 残りのリストに ["apples", "bananas"] を追加してください
  6. 最終的な買い物リストのアイテム数と、アルファベット順にした買い物リストを表示してください
解答例
📚練習問題2: 成績データの操作

あるクラスの数学の成績データを扱います。以下の操作を順番に実行しましょう。

  • テストの点数: [85, 92, 78, 65, 88, 72, 90, 81]
  1. このリストを昇順にソートした新しいリストを作成して表示してください
  2. 最高点と最低点を表示してください
  3. 点数が低い順に1~3番目の点数のリストを表示してください
  4. 点数が高い順に1~3番目の点数の合計点を表示してください
  5. 平均点を計算して表示してください
解答例
📚練習問題3: 在庫管理システム

商品名・在庫数・価格が別々のリストに保存されている以下の在庫管理システムについて、
指定された操作を順番に実行しましょう。

  • 商品名のリスト: ["Phone", "Laptop", "Tablet", "Headphones", "Charger"]
  • 在庫数のリスト: [15, 8, 12, 35, 40]
  • 価格のリスト: [800, 1200, 600, 150, 25]
  1. 「Tablet」の在庫数を5増やしてください
    (対応するインデックスを取得して値を更新してください)
  2. 「Smartwatch」という新商品を追加し、在庫数は10、価格は350としてください
  3. 「Headphones」の価格を20%引きにしてください。その価格を表示してください。
  4. 単価の一番高い商品の、商品名と合計価格(価格 * 在庫数)を表示してください
解答例

関連記事