どうも、ちょげ(@chogetarou)です。
Array.arrayの要素を条件で検索する方法を紹介します。
方法

Array.arrayの要素を条件で検索する方法は、2つあります。
filter()
ひとつは、filter()を使う方法です。
まず、filter()を呼び出します。
filter()の第1引数に1つの引数を持つ関数、第2引数に対象のArray.arrayを指定します。
そして、第1引数の関数で条件式を返します。
条件式では、関数の引数でArray.arrayの要素を取得します。
#arr=対象のArray.array, funcition=条件式を返す関数(1つの引数を持ち、引数で要素を取得)
result = filter(function, arr)
上記のfilter()は、関数で返した条件式で検索し、条件式を満たしたArray.arrayの要素を全てfilterオブジェクトとして取得します。
もし、filter()の結果をArray.arrayとして取得したい場合は、filter()の結果をArray.array()の第2引数に指定します。
#結果をArray.arrayとして取得
#t=型
result = array.array('t', filter(function, arr))
使用例
import array
nums = array.array('i', [10, 3, 5, 8, 1])
result = array.array('i', filter(lambda x: x % 2 == 0, nums))
print(result)
出力:
rray('i', [10, 8])
内包表記
もうひとつは、内包表記を使う方法です。
まず、内包表記で、Array.arrayをfor文でループし、ループ変数を結果として返します。
そして、for文の後ろに、if文で要素の条件式を指定します。
if文の条件式では、for文のループ変数でArray.arrayの要素を取得します。
#arr=対象のArray.array, condition=要素の条件式
#条件式ではfor文のループ変数(x)でリストの要素を取得
result = [x for x in arr if condition]
上記の内包表記は、Array.arrayをif文の条件式で検索し、条件式を満たすArray.arrayの要素を全て取得します。
使用例
import array
nums = array.array('i', [10, 3, 5, 8, 1])
result = [x for x in nums if x % 2 == 0]
print(result)
出力:
[10, 8]
まとめ
Array.arrayの要素を条件で検索する方法は、次の2つです。
- filter()を使う方法
result = filter(function, ls)
- 内包表記を使う方法
result = [x for x in arr if condition]
コメント