有没有办法删除Python列表在读取文件时的“引号”?

问题描述 投票:0回答:1

我正在使用 Python,使用 Folium 库。我想从 .txt 读取 GPS 坐标(纬度、经度)并将其放入列表中。问题是,我现在的清单是:

['(-27.414, -48.518)', '(-27.414, -48.517)', '(-27.413, -48.517)', '(-27.412, -48.517)', '(-27.412, -48.516)', '(-27.411, -48.516)']

但是当我想使用最后一个项目作为位置时,出现错误:

ValueError: Expected two (lat, lon) values for location, instead got: '(-27.414, -48.518)'

有什么方法可以更改我的列表,使那些“引号”消失吗?

我已经尝试过:

list(map(int, coordinatesList))
'[%s]' % ', '.join(map(str, coordinatesList))

但无济于事,在这两个项目上,列表不再是列表,如果我尝试访问第一个项目,它会返回“[”。

在我的 .txt 中,每一行都是一个坐标集(纬度、经度),没有括号并用逗号分隔。我有一个功能:

def criaListaDeCoordenadas(caminhoArquivo):
    coordenadasLidas = []
    with open(caminhoArquivo) as arquivo:
        temp = []
        for latLong in arquivo:
            if latLong.strip():
                temp.append(latLong.strip())
                for i in temp:
                    i = '(' + i + ')'
                    if i not in coordenadasLidas:
                        coordenadasLidas.append(i)
    return coordenadasLidas

它返回

['(-27.414, -48.518)', '(-27.414, -48.517)', '(-27.413, -48.517)', '(-27.412, -48.517)', '(-27.412, -48.516)', '(-27.411, -48.516)']
,但我希望它返回
[(-27.414, -48.518), (-27.414, -48.517), (-27.413, -48.517), (-27.412, -48.517), (-27.412, -48.516), (-27.411, -48.516)]
,同时仍然是一个列表。该函数的返回值将用于
folium.Marker()

python python-3.x list folium
1个回答
0
投票

您正在创建元组的字符串表示形式,而不是创建实际的元组,以添加到列表中。做类似的事情

import re


def criaListaDeCoordenadas(caminhoArquivo):
    coordenadasLidas = []
    with open(caminhoArquivo) as arquivo:
        temp = []
        for lat_long_str in arquivo:
            lat_long = [float(x) for x in re.split(r',\s*', lat_long_str)]
            coordenadasLidas.append(tuple(lat_long))
    return coordenadasLidas
© www.soinside.com 2019 - 2024. All rights reserved.