Не уверен, что я полностью понял ваш вопрос, но я думаю, это то, что вы ищете:
sum([[item for item in generator] for generator in list_of_gens], [])
Это берет каждый генератор и составляет из него список, а затем использует сумму для объединения эти списки.
Другая хорошая техника состоит в том, чтобы умножить значения на константу и сохранить их как целочисленные значения. Используя целые числа только может также помочь ускорить вычисления.
Если Вы не находитесь в серьезной потребности точности, необходимо действительно только должны быть сохранить 5 + значения после десятичной точки.
Эта Спецификация Хранения данных Долготы Широты дает диаграмму, которая показывает точность по сравнению с десятичными разрядами.
# decmal places, example, precision
5 51.22135 ± 0.8 m
6 50.895132 ± 0.08 m
7 удался бы, чтобы быть 8 мм или приблизительно 0,314 дюймов.
Стандарт здесь. Хотя это - слишком много для простого варианта использования такой как Ваш, это может дать Вам некоторое представление о том, почему может на самом деле быть лучше пойти и использовать некоторые совместимые пакеты OGC, которые много баз данных имеют в наше время, даже MySQL.
Приведение к сбою этого и принятие Вас реализуют алгоритмы для расчетов расстояния, любое число с плавающей точкой, которое имеет точность, в которой Вы нуждаетесь, будет работать.
AFAIK, SQL Server MS 2008 имеет поддержку GeoLocations как DataType. Я знаю, что Вы используете MySQL, но просто думали, что я упомяну это по этому вопросу.
ответ vfilby является, вероятно, лучшим, однако многие, RDBMS имеет лучшую поддержку индексации символьных полей, чем индексация плотного целого числа (или плавающая точка) поля.
Поэтому один, я мог бы рекомендовать преобразовать данные сначала: Если Вы захотите найти значения "около" другого значения, то Вы дополнительно захотите функцию, которая сохраняет это - возможно, путем преобразования в base36 и _
- дополняя к десятичной точке, но если Вам просто нужно точное совпадение, почти любая быстрая хеш-функция сделает.
Снова: Если у Вас нет большого количества данных, или Вы не используете RDBMS как это, сделайте что предложенный vfilby.
После ответа @vfilby, почему бы не сохранить две половины числа как два отдельных международных типа?
Я всегда только что использовал 4-байтовые столбцы с плавающей точкой для сохранения широты и долготы, потому что ошибка в точности намного меньше, чем точность устройств, которые мы используем. Это не может иметь место с Вашим приложением, но если это - Вы, не может получить намного больше агностика RDBMS, чем плавание.