python — массив, выводящий не все значение, а только символ

#python #regex

#python #регулярное выражение

Вопрос:

Я хотел бы, чтобы приведенный ниже код выводил все сохраненное значение в массиве прямо сейчас, он просто помещает первый символ, когда я указываю следующий

Желаемый:

 ['6.1', '6.2', '6.3', '6.4', '6.5']
6.1
6.2
6.3
6.4
6.5
  

Актуально:

 ['6.1', '6.2', '6.3', '6.4', '6.5']
6
6
6
6
6
  

Проблема:

 print (idPercentageDetailsArray[0])
  

В этом проблема. Я думаю, что запрашиваю индекс массива 0, но вместо этого я получаю позицию 0 каждой строки. Непонятно почему. Любая помощь была бы оценена.

Код:

     import re

    processDetails = """
        Percent Done: 6.1%

        Percent Done: 6.2%

        Percent Done: 6.3%

        Percent Done: 6.4%

      Percent Done: 6.5%"""

    idPercentageDetails = re.findall(r'Percent Done:s ([0-9] [.,][0-9] |[0-9] )', processDetails, flags=re.MULTILINE)

    print (idPercentageDetails)

    for idPercentageDetailsArray in idPercentageDetails:
        print (idPercentageDetailsArray[0])
  

Комментарии:

1. Разве ты не хочешь print (idPercentageDetailsArray) ?

Ответ №1:

Просто измените строку:

 print (idPercentageDetailsArray[0])
  

Для

 print (idPercentageDetailsArray)
  

Поскольку [0] означает, что вы получаете первый символ строки: idPercentageDetailsArray


Поэтому вы, вероятно, захотите изменить имена переменных на что-то вроде этого, чтобы ваш код имел больше смысла:

 import re

process_details = """
    Percent Done: 6.1%

    Percent Done: 6.2%

    Percent Done: 6.3%

    Percent Done: 6.4%

  Percent Done: 6.5%"""

id_percentage_details = re.findall(r'Percent Done:s ([0-9] [.,][0-9] |[0-9] )', process_details, flags=re.MULTILINE)

print(id_percentage_details)

for id_percentage_value in id_percentage_details:
    print(id_percentage_value)
  

Вывод:

 ['6.1','6.2', '6.3', '6.4', '6.5']
6.1
6.2
6.3
6.4
6.5