Pythonのリストを扱うための関数、リスト関数について基本的な使い方を解説
Pythonのリスト関数について解説してみました。Pythonのリストを便利に扱うための関数としてmap関数やfilter関数、reduce関数などのリスト関数があります。ここではリスト関数について学びましょう。
Pythonのリスト関数について
今回はPythonのリスト関数について学びます。
Pythonにはリストを扱うための便利な機能があります。
使い方をまとめていきます。
目次
01. Pythonのリスト関数の使い方
02. Pythonのリスト内包表記について
03. Pythonのセットの使い方
04. まとめ
01. Pythonのリスト関数の使い方
## リストの定義
a = [1, 2, 3]
## 関数を作成
def add(x):
return x + 1
print(add, a) #>>> [2, 3, 4] : 関数方式
print map(lambda x: x * 2, a) #>>> [2, 4, 6] : lambda方式
print [x * 2 for x in a] #>>> [2, 4, 6] : 内包表記
map関数を使用するとリストの各要素に対して任意の処理を行います。
map(実行文, リスト)のようにして使用します。
## リストの定義
a = [1, 2, 3]
## 関数の作成
def division(x):
return x % 2
print filter(division, a) #>>> [1, 3] : 関数方式
print filter(lambda x: x % 2, a) #>>> [1, 3] : lambda方式
print ([x for x in a if x % 2]) #>>> [1, 3] : 内包表記
filter()関数は特定の条件に合うリストの要素を抽出することができます。
ここでは奇数を取り出しています。
処理に対して真であるものを取り出します。
## リストの定義
a = [1, 2, 3, 4, 5]
## 関数の定義
def add(x, y):
return x + y
print reduce(add, a) #>>> 15 : 関数方式
print reduce(lambda x, y: x + y, a) #>>> 15 : lambda方式
reduce()関数ではリストの前から要素を2つずつ取り出して合計を計算しています。
02. Pythonのリスト内包表記について
## リスト内包表記
a = [1, 2, 3]
print [x * 2 for x in a] #>>> [2, 4, 6]
print [x * 2 for x in a if x == 3] #>>> [6]
print [[x, x * 2] for x in a] #>>> [[1, 2], [2, 4], [3, 6]]
print [(x, x * 2) for x in a] #>>> [(1, 2), (2, 4), (3, 6)]
## リスト内包表記
b = [4, 5, 6]
print [x * y for x in a for y in b] #>>> [4, 5, 6, 8, 10, 12, 12, 15, 18]
print [a[i] * b[i] for i in range(len(a))] #>>> [4, 10, 18]
関数を使用しなくてもリストの中で基本的な演算を行うことができるというものです。
03. Pythonのセットの使い方
## Pythonのセットの使い方
a = set(['red', 'blue', 'green'])
b = set(['green', 'yellow', 'white'])
## 実行
print a #>>> set(['red', 'blue', 'green'])
print b #>>> set(['green', 'yellow', 'white'])
print a - b #>>> set(['red', 'blue'])
print a | b #>>> set(['red', 'blue', 'green', 'yellow', 'white'])
print a & b #>>> set(['green'])
print a ^ b #>>> set(['red', 'blue', 'yellow', 'white'])
print 'green' in a #>>> True
a.add('black')
print a #>>> set(['red', 'blue', 'green', 'black'])
set()は重複のないリストを作ることができます。
## 実行結果
>>> print(a + b)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'set' and 'set'
ちなみにset同士の加算を行うことはできません。
04. まとめ
お疲れ様でした。
ここまで読んでいただきありがとうございました。
今回はPythonのリストを操作する関数とリスト内包表記について学びました。
ちょっとしたところで使ったりするので覚えておくといいと思います。