0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[光-Hikari-のPython]05章-06 制御構文(内包表記の基礎)

Last updated at Posted at 2020-06-07

#[Python]05章-06 内包表記の基礎
まず、以下のプログラムを見てください(プログラムを作成する必要はありません)

.py
L = []  #空リストLを作成する
print(L)  #Lの要素を出力

for i in range(10):
    L.append(i)  #appendメソッドで、リストLに要素を追加

print(L)

<実行結果>

【実行結果】
[]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

簡単に説明すると、空のリストLを作成し、いったん空のリストの要素をprint関数で出力しています。(もちろん空ですが)
そして、for文内に移動し、appendメソッドを用いてLの要素を1つずつ追加していきます。(appendメソッドは以前説明しました。)

最後にprint関数で要素の中身を出力しています。

しかし、この処理を1行で出力させることもできます。その方法として内包表記がありますので、説明していきます。

##内包表記によるリスト作成
内包表記にはいろいろあるのですが、おおよそ以下の記載方法で記載します。

.py
[変数による計算結果 for 変数 in for 繰り返し対象]

「変数による計算結果」と記載しているのには理由はありますが、後ほど説明します。
まずは、実際に先ほどの上記のプログラムと同じ処理内容を、内包表記で記載してみましょう。今回はPython Consoleから以下のコードを入力してください。

.py
>>> [i for i in range(10)]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

[ ]で囲っているのがリスト表記を意味しています。こう記載することで、特にappendメソッドや変数を使わずに1行でリストを作成することが可能です。

「変数による計算結果」としている理由について説明します。
例えば、リストに0.5刻みの値を出力するときに、**range(0, 10, 0.5)**と記載することはできません。(stepに小数を指定できない)

そこで、内包表記を使用します。実際には以下の通りに記載します。Python Consoleから以下のコードを入力してください。

.py
>>> [i * 0.5 for i in range(10)]
[0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5]

なお、この内包表記の結果は変数に代入することもできます。

.py
>>> ls = [i * 0.5 for i in range(10)]
>>> ls
[0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5]

##内包表記によるディクショナリ作成
リストだけでなく、ディクショナリも作成できます。Python Consoleから以下のコードを入力してください。

.py
>>> Countries = ['Japan', 'Canada', 'China', 'America']
>>> {n[0:2] : n for n in Countries}
{'Ja': 'Japan', 'Ca': 'Canada', 'Ch': 'China', 'Am': 'America'}

今回はディクショナリなので、[ ]でなく、{ }を使って表記します。
各要素の先頭の2文字をキーとしています。それと値を組み合わせて出力させています。

##演習問題
演習問題を用意しました。ぜひ解いてみてください。なお、Python Consoleを利用してください。

【1】1~9の整数の2乗をした結果を内包表記を利用してリストを作成してください。結果は以下の通りです。
[1, 4, 9, 16, 25, 36, 49, 64, 81]

##最後に
今回は内包表記について触れましたが、気づいたことがありましたでしょうか?実は今回、Python Consoleしか使用していません。ほかの言語にはまだあまりありません。内包表記はコマンドとして入力ができます。
簡易的な表記ができることもできるので、ぜひ利用してみてください。

###【目次リンク】へ戻る

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?