月ノ書

PythonでLINQ風操作をやさしく解説|リスト内包表記・map・filterでデータ処理を効率化

この記事でわかること
  • PythonでLINQ的な操作とは何か
  • リスト内包表記・map・filterを組み合わせた便利なデータ操作
  • 条件付きの抽出・変換・集計の方法
  • 複雑なリスト処理を効率的に書く考え方

C#のLINQのように、データを「絞る・変換する・集計する」操作を簡単に書く方法をPythonで理解できます

LINQ風操作とは

LINQは、C#でリストや配列を操作するときに使う便利な仕組みです
Pythonでは、リスト内包表記、map、filter、sumなどを組み合わせることで同じような操作ができます

例:条件で絞りつつ変換する

numbers = [1, 2, 3, 4, 5]

# 偶数だけを2倍にする
result = [x * 2 for x in numbers if x % 2 == 0]
print(result)  # [4, 8]

これだけで LINQでいうWhere + Select の操作ができます

mapとfilterで書く場合

同じ処理をmapとfilterで書くこともできます

numbers = [1, 2, 3, 4, 5]

# filterで偶数だけ抽出して、mapで2倍に変換
result = list(map(lambda x: x * 2, filter(lambda x: x % 2 == 0, numbers)))
print(result)  # [4, 8]

この流れはLINQの WhereSelect に対応しています

集計も簡単

Pythonでは sumlen を組み合わせることで、集計もできます

numbers = [1, 2, 3, 4, 5]

# 偶数の合計
total = sum(x for x in numbers if x % 2 == 0)
print(total)  # 6

LINQでいう SumCount のような操作です

複数条件や組み合わせも可能

リスト内包表記で複雑な条件や組み合わせも簡単に書けます

numbers = [1, 2, 3]
letters = ["a", "b"]

# 全ての組み合わせ
result = [(n, l) for n in numbers for l in letters]
print(result)  # [(1, 'a'), (1, 'b'), (2, 'a'), ...]

LINQの SelectMany に相当する操作も直感的に書けます

注意点

まとめ

これで、Pythonでのデータ操作の基礎から応用まで、ほぼ一通り揃いました

この流れを理解すれば、初心者でも データを自由自在に扱うプログラム が書けるようになります

学習進捗