いくつかのデータをグループ化する必要があるため、3レベルのネストを達成しようとしています。Python:リスト内包の3レベルのネスト化
私はマッチのリストを持っており、これらのマッチのそれぞれは特定のラウンドに属しています。私はこれらのマッチを各ラウンドの別々のネストされたリストに再編成したいが、私はこれらのリストにマッチ全体を保存するのではなく、スコアだけを保存したい。明確にするために
、我々はこれを持っている:
all_matches = [final_match, semifinal1_match, semifinal2_match]
これらの試合はround
、home_score
とaway_score
のような性質を持っています。私は何をしようとしていることは、以下の方法でグループ化されています:
[
[[1, 3], [2, 0]], # semifinal
[[1, 0]] # final round
]
は、私は、彼らが所属するラウンドにより、ネストされたリストに一致するグループに管理する:
[list(matches) for round, matches in groupby(all_matches, key=attrgetter('round'))]
そして、これが結果です:
[[semifinal1_match, semifinal2_match], [final_match]]
これは私が後にするものではありません。私は、リストの理解構文が、マッチ全体をそれぞれのラウンドリストに収めるのではなく、リスト内の各マッチのスコアのみを抽出する方法を見つけようとしています。
を:オープンブラケット文脈では、以上の文を継続することができます複数の行。 –
@ PM2Ringあなたが正しいです。通常はわかりませんので、安全なものにしておきます:) –