Pythonのif文とのfor文

ちょっと面白かったので書いておく。
PHPとかだとif文って基本的にはこんな感じで書くけど

# if 文
if ( $a == $b ){
    echo $a;
}

# for文
for ($i=0;$i<10;$i++){
    echo $i
}

Pythonではif文やfor文こんな形で書けるらしい。

sum_of_squares=sum([pow(prefs[person1][item]-prefs[person2][item],2)
                     for item in prefs[person1] if item in prefs[person2]])

ややこしいけどprefs[person1]の中身をforで回して、
同様のアイテムがprefs[person2]に存在した場合に、
互いの差の二乗を足していく
といった処理を行っている・・・・のだろう・・・(゚ω゚ )
まだ確証はない。

forで回して出しているpow(prefs[person1][item]-prefs[person2][item]
の部分がリストのような戻り値?になっているからsumで処理できんだろうな。
一度変数に納めないでforでの表現でリストを表現できるというのはベンリかもしれない。

ひじょーにとっつきづらいけど・・・・。