我有一个包含以下内容的列表,这是一个由纬度和经度点组成的边界框:
[u'51.2867602', u'51.6918741', u'-0.510375', u'0.3340155']
我目前正在尝试将此列表中的每个值转换为浮点数,以便将其传递到其他函数中。我当前的代码设置如下:
for coordinate in coordinates:
coordinate = float(coordinate)
然而,这似乎不起作用,因为再次打印列表提供与初始列表完全相同的输出。但是,在运行该代码时不会出现错误。
对此有任何帮助将不胜感激;我对Unicode的体验有限!我使用的是Python 2.7.10。
答案 0 :(得分:2)
你忘了做任务:
for i, coordinate in enumerate(coordinates):
coordinates[i] = float(coordinate)
答案 1 :(得分:1)
coordinate
是本地变量
for coordinate in coordinates:
coordinate = float(coordinate)
因此,将float(coordinate)
分配给局部变量将不会影响真实列表。
相反,引用列表本身,如下所示:
for i in range(len(coordinates)):
coordinates[i] = float(coordinates[i])
答案 2 :(得分:1)
另一种解决方案,使用map
coordinates = [u'51.2867602', u'51.6918741', u'-0.510375', u'0.3340155']
coordinates = map(float, coordinates)