Python: IndexError: список индексов вне диапазона: невозможно определить проблему

string= "1110 Boston Road\nBronx, NY 10456\n(40.8276026690005, -73.90447525699966)"

Я хочу извлечь значение -73.90447525699966 из приведенной выше строки.

Код:

coordinates=re.findall("\(.+\)",string)
lat=string[0].split(",")[1].replace(")","").strip()

Ошибка: IndexError: список индексов вне диапазона

Когда я извлекаю значение 40.8276026690005 с помощью аналогичной функции (упомянутой ниже), она работает нормально.

coordinates=re.findall("\(.+\)",string)
lat=coordinates[0].split(',')[0].replace('(','')

Пожалуйста помоги.

1 ответ

Решение

Используйте регулярное выражение, которое не захватывает скобки, а затем распаковка в переменные очень проста:

coordinates = re.search('\((.+)\)', string).group(1)
lat, long = (float(c.strip()) for c in coordinates.split(','))

дает:

>>> lat
40.8276026690005
>>> long
-73.90447525699966
Другие вопросы по тегам