Python将十进制定点列表转换为弧度

时间:2018-02-10 17:00:23

标签: python python-3.x python-2.7

我有一个十进制定点数列表:

latitude = Places.query.with_entities(Places.latitude).all()
result = []
for i in range(len(latitude)):
    result.append(latitude[i][0])
print result

纬度输出为this 我想把它们映射到Radians。所以,我这样做了:

lat_ = map(lambda i: radians(i), result)

但是需要错误TypeError: a float

我想知道执行此操作的正确方法是什么。 `

修改

现在结果如下:

[28.633, 29.333,...]

错误是:

TypeError: float() argument must be a string or a number

3 个答案:

答案 0 :(得分:2)

试试这个:

rads = [x['latitude'] for x in result]
_lat = map(lambda i: radians(i), rads)

答案 1 :(得分:1)

问题是数学模块的弧度函数需要一个float类型的输入,而不是Decimal类型的输入。您必须先将值转换为float:

lat_ = map(lambda i: radians(float(i)), result)

答案 2 :(得分:1)

from decimal import *

from math import radians

result = [Decimal('77.216700'), Decimal('77.250000'), Decimal('77.216700'), Decimal('77.216700'), Decimal('77.200000'), Decimal('77.216700')]

lat_ = map(lambda i: radians(float(i)), result)

# [1.3476856525247056, 1.3482668471656196, 1.3476856525247056,
#  1.3476856525247056, 1.3473941825396225, 1.3476856525247056]