Прежде всего, по возможности избегайте длинных строк.Этот конкретный пример может быть написан гораздо более читабельно:
def rects_bound(rects):
x0 = min(x for x, y, w, h in rects)
y0 = min(y for x, y, w, h in rects)
x1 = max(x + w for x, y, w, h in rects)
y1 = max(y + h for x, y, w, h in rects)
return x0, y0, x1, y1
Если вы предпочитаете избегать переменных, вы также можете использовать
def rects_bound(rects):
return (min(x for x, y, w, h in rects),
min(y for x, y, w, h in rects),
max(x + w for x, y, w, h in rects),
max(y + h for x, y, w, h in rects))
, который я все еще нахожу гораздо более читабельным, чем ваш оригинал.код.
(обратите внимание, что я предполагаю, что rects
допускает несколько итераций.)