はのは、解体してみましょう:
$class->categories
これは$class
オブジェクトのcategories
プロパティにアクセスします。 Pythonではだこと:
klass.categories # (class is a reserved keyword, using klass instead)
私たちは、あなたがこれをしたいのでcategories
は、ここにdict
だと仮定します:
categories[$cat->category_parent_id]
これは次のようになり、そのPythonで、配列の特定のキーにアクセスdict
のキー:
categories[cat.category_parent_id]
今トリッキーな部分:
...[] = $cat
これは$cat
を配列にプッシュします。 Pythonでは、を意味し、値はlist
です。 PHPは存在しない場合、必要に応じて暗黙的に新しいサブ配列を作成します。 Pythonはそうではありません。これは少しだけ追加の検討が必要な唯一の部分です。あなたが知る必要があるのは、あなたのdict
に既にcategories[cat.category_parent_id]
が存在するのか、それともそれをプロセスで作成するのかです。
あなたはそれが存在することがわかっている場合はcategories
はすべてcat.category_parent_id
キーがすでに事前に移入されているdict
list
のsのであれば、それはこのような単純なのです:
klass.categories[cat.category_parent_id].append(cat)
ただし、キーのドン」最初にアクセスされたときに、その値が作成され、その値がlist
に設定されていることを確認する必要があります。
klass.categories.setdefault(cat.category_parent_id, []).append(cat)
categories[cat.category_parent_id]
が存在する場合、それが返され、あなたがそれにappend
することができます:Pythonでそのための最もコンパクトな表記法はdict.setdefault
方法です。存在しない場合は作成され、[]
に初期化されてから返されます。
StackOverflowはコード翻訳サービスではありません – naomik
片方向はPythonを学ぶことができます。もう一つは、Pythonを知っているインターンを雇うことです。 –