как запустить массив строк во вложенном цикле в 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"])

Массив фотографий - это список, а не словарь...

Другие вопросы по тегам