У меня есть список Python 3D. Чтобы сделать его более понятным, список списка, где каждый список является четырехугольной координатой поля. Я должен отфильтровать все поля, которые меньше определенного размера.
Предположим, это список питонов.
box = [[[4, 4], [4, 8], [8, 8], [8, 4]],
[[8, 8], [8, 16], [16, 16], [16, 8]],
[[20,16],[20,20],[24,20],[24,16]]
...
]
Я должен отфильтровать все поля, длина и ширина которых меньше или равны 5.
filtered_box = [[[4, 4], [4, 8], [8, 8], [8, 4]],
[[20,16],[20,20],[24,20],[24,16]]
...
]
Это мой текущий код
filtered_box = []
for c in box:
min_x, min_y = c[0]
max_x, max_y = c[2]
if max_x - min_x <= 5 & min_y - max_y <= 5:
filtered_box.append(c)
Это работает хорошо, но мне нужно более оптимизированное решение. Он может использовать numpy и конвертировать обратно в список python или использовать собственные операции над python в списке. Я использую Python 3.