Я не понимаю, как они инициализируют текущее решение. Может ли кто-нибудь объяснить, что это делает? - PullRequest
0 голосов
/ 04 мая 2020

Я не понимаю, как логическое значение может быть умножено на длину. Я довольно новичок в кодировании

def __init__(self, capacity, items):
        self.currentSolution = [False]*len(items) 

Ответы [ 2 ]

3 голосов
/ 04 мая 2020

Обозначение [value] * number создает список, содержащий value для каждого индекса, с длиной number

Пример

[False]*2 => [False, False]
[False]*10 => [False, False, False, False, False, False, False, False, False, False]
1 голос
/ 04 мая 2020

Когда вы умножаете список на N, он фактически создает новый список, состоящий из N исходных списков.

Позвольте мне привести вам пример. Когда мы будем использовать следующую команду:

[1, 2, 3] * 2

Мы получим следующий список:

[1, 2, 3, 1, 2, 3, 1, 2, 3]

Таким образом, выполнение [False] * len (items) фактически создаст список с лен лен (предметов), каждый из которых является ложным.

Другой способ сделать то же самое может быть:

[False for _ in range(len(items))]

Удачи.

...