私は鍵ごとにブロックされたユーザのリストを作成する必要があります。各ユーザーには複数の属性があり、これらの属性のいずれかがキーにある場合、ユーザーはブロックされます。ネストされたforループを作る方法Pythonic
私は以下のネストされたfor
-loopを書いてくれました。それは私のために働いていますが、より少ない行数とより読みやすい方法でもっとpythonicな方法で書いてみたいと思います。どうやってやるの?
for key in keys:
key.blocked_users = []
for user in get_users():
for attribute in user.attributes:
for key in keys:
if attribute.name == key.name:
key.blocked_users.append(user)
私はあなたのコードがunpythonicだとは思わない。私はまた、節約する線が必然的にコードをより非平凡にするとは思わない。とにかく:通常は 'itertools.product'を使ってネストされたforループを避けることができますが、内側のループが外側のループ変数に依存している場合は使用できません。 – timgeb
これはまあまあです。リストの理解に3つの 'for'ループを使用するだけで、醜い混乱になります。 –