У меня есть список ящиков, заданных своими координатами и геометрии следующим образом:Как перебрать список объектов без изменения самих объектов?
box = [x y w h]
Я хотел бы цикл через эти коробки, как показано ниже - проблема в том, мне нужно изменить представление в функции "ящики findMatchingbox) - поэтому я помещаю его в [xmin ymin xmax ymax] в этой функции. Проблема в том, что когда я даю 'i' в функцию, которая постоянно меняет поля в моем списке, я попытался сначала включить функцию temp_i = i в функцию, а затем выполнить необходимые шаги, но безрезультатно.
Я предполагаю, что это должно быть потому, что python хранит только одну копию каждого блока в памяти, как бы я отправил конкретное поле (i) в функцию, извлекая из него необходимую информацию после ее преобразования, не меняя фактическая коробка? Можете ли вы сделать копию?
for i in bboxes:
# Determine if detection belongs to an existing object
print('1:\t',i)
boxIDx = self.findMatchingBox(i)
print('2:\t')
Выход:
1: [464, 282, 48, 48]
2: [464, 282, 512, 330]
Я думаю, что это может быть полезно, чтобы показать минимальный пример кода в 'findMatchingBox' –
boxTemp = поле [::]? – Lafexlos
Я думаю, что я действительно понял это: мне нужно сделать временную копию i и выполнить вычисления на этом - я сделал это, используя temp_i = list (i). Это не работает, чтобы просто сказать temp_i = i. –