Python速習ガイド - ステップ1 基本的な文法とデータ型 (7) - リスト (3)
シリーズ - Python速習ガイド
コンテンツ
Info
- 本講座は、Pythonプログラミングの基礎を手を動かしながら最速で身につけるための講座です。
- 「スタイルガイド」では、Pythonできれいなコードを書くためのガイドライン(PEP8)で紹介されている内容を主に記載しています。
- 各コードは実行して結果を確認することができます。
ページの再読み込みで元の内容に戻りますので、自由にいじってみてください。
「ステップ1 基本的な文法とデータ型」の続きです。
1.5. データをまとめる
1.5.1. リスト
数値のリストに適用可能な関数
sum
関数
sum
関数はリスト内の数値の合計を計算します。
min
関数、max
関数
min
(max
)関数はリスト内の最小値(最大値)を計算します。
sorted
関数
sorted
関数を使用すると、リストの要素を昇順にソートしたリストが取得できます。- パラメータで、
reverse=True
を指定すると降順のリストが得られます。 - 元のリストは変更されず、新しいリストを返します。
- パラメータで、
sorted
関数は数値のリスト以外にも、順序の定義されている型のリストに適用可能です。
ブール値のリストに適用可能な関数
all
関数
all
関数を使用すると、リスト内のすべての値がTrue
である場合にTrue
を、そうでない場合にFalse
を返します。- 最初の要素からチェックしていき、
False
を見つけた時点でFalse
を返します。
(残りの要素はチェックされません)
- 最初の要素からチェックしていき、
- ブール値ではないリストに適用すると、要素を(
bool
関数を適用して)ブール値であると解釈して処理されます。
any
関数
any
関数を使用すると、リスト内のいずれかの値がTrue
である場合にTrue
を、そうでない場合にFalse
を返します。- 最初の要素からチェックしていき、
True
を見つけた時点でTrue
を返します。
(残りの要素はチェックされません)
- 最初の要素からチェックしていき、
- ブール値ではないリストに適用すると、要素を(
bool
関数を適用して)ブール値であると解釈して処理されます。
空リストに対する各関数の挙動
sum
関数- 空リスト(
[]
)に対して、sum
関数は0
を返します。
- 空リスト(
min
(max
)関数- 空リスト(
[]
)に対して、min
とmax
関数はValueError
を発生させます。
- 空リスト(
all
関数- 空リスト(
[]
)に対して、all
関数はTrue
を返します。- これは「空リスト内のすべての要素が真」という命題が真となるためです。
(反例が存在しないため)
- これは「空リスト内のすべての要素が真」という命題が真となるためです。
- 空リスト(
any
関数- 空リスト(
[]
)に対して、any
関数はFalse
を返します。- これは「空リスト内に真の要素が1つ以上ある」という命題が偽となるためです。
- 空リスト(
リストのまとめ
ここまで見てきたリストに関する操作について、練習問題を解いてみましょう。
📚練習問題1: 買い物リストの管理
あなたは買い物リストを管理するプログラムを作っています。
以下の操作を順番に実行し、最終的な買い物リストを表示しましょう。
- 最初の買い物リスト:
["milk", "bread", "eggs", "cheese", "butter"]
- 「eggs」が既にリストにあるか確認し、結果を表示してください
- 「coffee」をリストの最後に追加してください
- 「bread」の位置に「rice」を挿入し、元の「bread」は削除してください
- リストの最初の商品と最後の商品を取り出してその商品を画面に表示し、残りを新しいリストとして作成してください
- 残りのリストに
["apples", "bananas"]
を追加してください - 最終的な買い物リストのアイテム数と、アルファベット順にした買い物リストを表示してください
解答例
📚練習問題2: 成績データの操作
あるクラスの数学の成績データを扱います。以下の操作を順番に実行しましょう。
- テストの点数:
[85, 92, 78, 65, 88, 72, 90, 81]
- このリストを昇順にソートした新しいリストを作成して表示してください
- 最高点と最低点を表示してください
- 点数が低い順に1~3番目の点数のリストを表示してください
- 点数が高い順に1~3番目の点数の合計点を表示してください
- 平均点を計算して表示してください
解答例
📚練習問題3: 在庫管理システム
商品名・在庫数・価格が別々のリストに保存されている以下の在庫管理システムについて、
指定された操作を順番に実行しましょう。
- 商品名のリスト:
["Phone", "Laptop", "Tablet", "Headphones", "Charger"]
- 在庫数のリスト:
[15, 8, 12, 35, 40]
- 価格のリスト:
[800, 1200, 600, 150, 25]
- 「Tablet」の在庫数を5増やしてください
(対応するインデックスを取得して値を更新してください) - 「Smartwatch」という新商品を追加し、在庫数は10、価格は350としてください
- 「Headphones」の価格を20%引きにしてください。その価格を表示してください。
- 単価の一番高い商品の、商品名と合計価格(価格 * 在庫数)を表示してください