Мне нужно извлечь значения из списка, но это работает только тогда, когда у меня есть список с двойной скобкой (bbox=[[]]), когда он имеет одну скобку (bbox=[]), это дает мне эту ошибку: не может распаковать неитерируемый объект int.
#bboxes = [[396, 386, 531, 586], [449, 387, 536, 494]]
bboxes = [396, 386, 531, 586]
instp = []
if not instp:
instp = bboxes
for i in bboxes:
x1,y1,x2,y2 = i
bbox = [x1,y1,x2,y2]
print("bbox",bbox)
Как я могу заставить мой код работать в обоих случаях?
Чтобы извлечь из одного списка, вам не нужен цикл for. Просто пиши
x1,y1,x2,y2 = bboxes
Чтобы ваш код работал в обоих случаях, вы можете, например, проверить, является ли тип первого элемента в списке list
или int
, и использовать цикл for или простое решение для распаковки на основе этого:
if isinstance(bboxes[0], int):
x1,y1,x2,y2 = bboxes
else:
# for-loop etc.
Большое спасибо, я новичок в python, и я не знал, как это сделать.