Re:ゼロから始める文系プログラマ

文系プログラマーがブログを書いてみた。

【Python・データ構造】~リスト同士の演算~

f:id:ShotaNukumizu_1000:20210405111435p:plain

おはようございます。Shotaです。今日もPythonのプログラムを紹介していきたいと思います!

今日は昨日に引き続いて「list型」について説明していきたいと思います。昨日は「list型」の構造について書きましたが、今日はリスト同士の演算について簡潔に解説していきます。

 

【目次】

 

1.リストの演算(足し算・掛け算)

足し算

リストどうしは、「+」記号を使って一つのリストにまとめられます。ただし、足し算する値が両方ともリストでなければ計算できないので注意しましょう。 

 

f:id:ShotaNukumizu_1000:20210411092200p:plain

 

▼実行結果

f:id:ShotaNukumizu_1000:20210411092233p:plain

 

掛け算

 リストの掛け算には、「*(アスタリスク)」を使います。これはリストどうしの演算ではありません。リストに整数を掛けると、リストをその数だけ繰り返しつなげることができます。これによって、同じ文字列や数値をリストの中に繰り返し書くことを省くことができます。

 

f:id:ShotaNukumizu_1000:20210411092338p:plain

 

▼実行結果

f:id:ShotaNukumizu_1000:20210411092413p:plain

 

値をリストに保管する

リストを使う際に、あらかじめ保管する値の数がはっきりわかっていればいいですが、「いくつかの値を保管するのか事前にわからない」ということもあります。

この際は、最初に空のリストを作っておき、必要に応じてリストに値を追加していきます。「リストの演算」を使うことで値を次々に追加していくことができます。簡単な例を挙げると、3つの値がリストに追加されていることがわかります。

 

f:id:ShotaNukumizu_1000:20210411092830p:plain

 

 ▼実行結果

f:id:ShotaNukumizu_1000:20210411092858p:plain

 

このようにして、必要な値をリスト化すれば足し算でどんどんリストに追加できるのです。

2.シーケンス演算

先程説明した演算の他にも、リストには様々な演算が用意されています。これらを「シーケンス演算」と言います。

シーケンスは、保管する値に番号(インデックス)をつけて整理するコンテナの総称です。リストもシーケンスの一つに分類されます。このシーケンスに共通する演算が「シーケンス演算」です。既に説明した「+」や「*」による演算もシーケンス演算の一つです。

値が含まれているかどうか

 リストの中に、指定した値が含まれているかどうかを調べることができます。2通りの記述があります。

 

値 in リスト

値 not in リスト

 

「in」は、リストに値が含まれていればTrue、そうでなければFalseを出力します。「not in」はその反対です。

実際に以下のコードを書いて試してみましょう。

 

f:id:ShotaNukumizu_1000:20210411093250p:plain

 

▼実行結果

f:id:ShotaNukumizu_1000:20210411093327p:plain

 

上のコードで考えてみると、変数seq_1は100がlist_1に含まれているかを調べています。一方で、変数seq_2は200がlist_1に含まれていないかを調べています。

seq_1の場合、100はリストの中に含まれているので「True」と表示されます。逆に、seq_2の場合は200はリストの中に含まれているので「False」と表示されます。

指定した範囲の要素を取得する

 リスト内の特定の要素を取り出すには、[]で取り出したい要素のインデックス番号を指定しました。しかし、このやり方では一つしか値を取り出すことができません。

一定範囲の要素をまとめて取り出すには、次のようにコード内に記述します。

 

リスト[開始位置:終了位置]

 

これによって、指定した範囲の要素をリスト化して取り出すことができるのです。実際に以下のコードを書いて試してみましょう。

 

f:id:ShotaNukumizu_1000:20210411093850p:plain

 

▼実行結果

f:id:ShotaNukumizu_1000:20210411093940p:plain

 

この方法では取り出す最初の位置と最後の位置を指定します。しかし、これを「取り出す要素のインデックス番号」と考えるとわかりにくいです。「要素と要素の間」を番号で表記したものと考えると分かりやすくなります。

[1,2,3,4,5] というリストでは、一番最初の「1」の手前が「0」番号になります。そして「2」と「3」の間が「1」番号、....というように考えていきます。

すると、lst[1:4]というのは、2と3の間が開始位置、4と5の間が終了位置になります。したがって、その間にある「2」「3」「4」がリストとして取り出されます。

 

要素の個数・最小値・最大値

「リストの要素の個数」「リストの最小値」「リストの最大値」は、組み込み関数で簡単に得ることができます。組み込み関数とは、Pythonに最初から組み込まれている関数です。関数とは、「特定の処理のための命令」です。ここまで紹介してきたデータだけでは命令して意味のあるプログラムを作るのは難しいので、関数で命令していきます。

 

「len(リスト名)」:要素の個数を調べる

「max(リスト名)」:要素の最大値を調べる

「min(リスト名)」:要素の最小値を調べる

 

試しに以下のコードを書いて試してみましょう。

 

f:id:ShotaNukumizu_1000:20210411094411p:plain

 

▼実行結果

f:id:ShotaNukumizu_1000:20210411094452p:plain

 

このようにしてリスト内の個数、要素の最大値や要素の最小値を調べることができます。

 

まとめ

【本日のまとめ】

  • リストは「+」や「*」を使って計算できる。「+」はリスト同士、「*」は「リスト*整数」という形で使う。
  • リストには様々な演算が用意されている。これを「シーケンス演算」という。
  • 「in」は、リストに値が含まれていればTrue、そうでなければFalseを出力する。「not in」はその反対
  • 一定範囲の要素をまとめて取り出すには、「リスト[開始位置:終了位置]」と表記する
  • 「len(リスト名)」で、リストの要素の個数を調べる
  • 「max(リスト名)」で、要素の最大値を調べる
  • 「min(リスト名)」:要素の最小値を調べる

 

本ブログでは、こんな感じでPythonにまつわる情報や基本的な知識、Pythonの操作方法やニュースをたくさん紹介していきます。毎週日曜日に、普段とは趣向を変えて有名な自己啓発本・ビジネス書を要約・考察するブログを書いていきます。

この記事がいいと思った人はSNSにシェアしてくれると非常に嬉しいです!

明日はリスト操作の具体的なメソッドについて詳しく説明していきます。

今日も最後まで読んでくださりありがとうございました!

 

【参考図書】

gihyo.jp