将unicode字符串列表转换为浮点数

时间:2016-11-26 13:10:03

标签: python list

我有一个包含以下内容的列表,这是一个由纬度和经度点组成的边界框:

[u'51.2867602', u'51.6918741', u'-0.510375', u'0.3340155']

我目前正在尝试将此列表中的每个值转换为浮点数,以便将其传递到其他函数中。我当前的代码设置如下:

for coordinate in coordinates:
    coordinate = float(coordinate)

然而,这似乎不起作用,因为再次打印列表提供与初始列表完全相同的输出。但是,在运行该代码时不会出现错误。

对此有任何帮助将不胜感激;我对Unicode的体验有限!我使用的是Python 2.7.10。

3 个答案:

答案 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)