Давайте деконструкция:
$class->categories
Это обращается к categories
свойству $class
объекта. В 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 это означает, что значение append
составляет значение list
. PHP будет неявно создавать новые подмассивы по мере необходимости, если они не существуют. Python этого не делает. Это единственная часть, которая нуждается в дополнительном рассмотрении. Что вам нужно знать, существует ли categories[cat.category_parent_id]
в вашем dict
или вы хотите создать его в этом процессе.
Если вы знаете, что существует, если categories
является dict
из list
с, в которой все cat.category_parent_id
ключи уже предварительно заполнен, то это так же просто, как это:
klass.categories[cat.category_parent_id].append(cat)
Однако, если ключи Дон» t существует, вы должны убедиться, что они созданы и что их значение установлено на list
при первом доступе. Самое компактное обозначение, что в Python является dict.setdefault
метод:
klass.categories.setdefault(cat.category_parent_id, []).append(cat)
Если categories[cat.category_parent_id]
существует, он возвращается, и вы можете append
к нему. Если он не существует, он создается и инициализируется до []
, а затем возвращается.
StackOverflow не является сервисом перевода кода – naomik
одним способом может стать изучение python. другой - нанять стажера, который знает python. –