как запустить массив строк во вложенном цикле в Python
Я пытаюсь запустить этот код (небольшую часть моей программы). Я исправил и добавил пробелы, и теперь я получаю новую ошибку, возможно, этот массив не подходит для строки?
arrayOfPhotos = ["1.jpg", "2.jpg", "3.jpg", "4.jpg"]
for name in arrayOfPhotos:
detections = detector.detectObjectsFromImage(input_image=arrayOfPhotos[name], output_image_path="holo3-detected.jpg")
for detection in detections:
print(arrayOfPhotos[name], " : ", detection["percentage_probability"])
Я получаю сообщение об ошибке:
Traceback (most recent call last):
File "dTEST.py", line 13, in <module>
detections = detector.detectObjectsFromImage(input_image=arrayOfPhotos[name], output_image_path="holo3-detected.jpg")
TypeError: list indices must be integers or slices, not str
Можешь мне помочь?
2 ответа
То , что вы, вероятно, хотите, это:
arrayOfPhotos = ["1.jpg", "2.jpg", "3.jpg", "4.jpg"]
for name in arrayOfPhotos:
detections = detector.detectObjectsFromImage(input_image=arrayOfPhotos[name], output_image_path="holo3-detected.jpg")
for detection in detections:
print(arrayOfPhotos[name], " : ", detection["percentage_probability"])
пробелы важны в python, чтобы оператор был частью цикла, он должен иметь отступ по сравнению с циклом (я добавил 2 пробела перед строками)
изменить: OP отредактировал вопрос.
замените input_image=arrayOfPhotos[name] на input_image=name
arrayOfPhotos = ["1.jpg", "2.jpg", "3.jpg", "4.jpg"]
for name in arrayOfPhotos:
detections = detector.detectObjectsFromImage(input_image=name, output_image_path="holo3-detected.jpg")
for detection in detections:
print(name, " : ", detection["percentage_probability"])
Массив фотографий - это список, а не словарь...