Что представляют собой квадратные скобки? - PullRequest
1 голос
/ 31 марта 2020

Привет, я просто работаю над адаптацией некоторого кода python и проверяю, что понимаю все внутри него, так как никогда раньше не работал с Python. Что означает только [0] в коде? (qtable - это двухмерный массив, содержащий состояния (я) и действия (a), действия - это список, current_s - целое число)

self.q_table[current_s] = ([0] * len(self.actions))

1 Ответ

3 голосов
/ 31 марта 2020

[0] - это list с одним элементом: ноль.

Затем программа использует оператор * (умножение списка в этом случае) для репликации списка левых операндов len(self.actions) раз.

Это создает список нулей длиной len(self.actions).

Для неизменяемых типов это предпочтительная инициализация. Более медленная альтернатива (которая должна использоваться для изменяемых типов) будет:

[0 for _ in len(self.actions)]
...