Python — Построение строки из цикла

#python #string

#python #строка

Вопрос:

У меня есть набор точек, которые имеют значения широты и долготы, и я пытаюсь создать строку в следующем формате, чтобы работать с Gmaps API:

  LatitudeX,LongitudeX|LatitudeY,LongitudeY
  

Конечная строка будет построена с использованием неизвестного количества пар длины lat.

Мой предыдущий опыт связан с PHP, и, хотя мне удалось заставить что-то работать, однако это кажется немного неуклюжим, и мне было интересно, есть ли более «питонический» способ достижения результата.

Вот что у меня есть на данный момент:

  waypoints = ''

 for point in points:
     waypoints = waypoints "%s,%s" % (point.latitude, point.longitude) "|"

 waypoints = waypoints[:-1]
  

Приветствуются любые советы.

Спасибо

Ответ №1:

Используйте str.join :

 waypoints = '|'.join("{0},{1}".format(p.latitude, p.longitude) for p in points)
  

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

1. Также обратите внимание на использование выражения генератора ( 1 кстати). Никогда не используйте понимание списка, когда работает выражение генератора.

2. Метод join для строк является одним из самых быстрых способов объединения строк. @Dan Проверьте skymind.com /~ocrow/python_string для примеров… и обратите внимание, что наивная конкатенация с оператором имеет ужасную производительность по сравнению с str.join.