Anidamiento de listas de Python y conversión de tipos en la lista

Hola a todos, recientemente estoy haciendo un trabajo sobre dibujar mapas de trayectoria de latitud y longitud, por lo que es necesario extraer los datos almacenados en la base de datos, pero después de que los datos se almacenan en un documento de texto, al llamarlo con python, será se encuentra que los datos están en caracteres La salida tiene la forma de una cadena, por lo que el objetivo de este artículo es anidar los datos en una lista y convertir el tipo de datos en la lista. La escritura no es buena, por favor tengan paciencia conmigo.

Representación de tipos de datos primitivos

Los datos originales se almacenan en TXT de la siguiente manera

Pero cuando leemos los datos con python, el resultado se muestra en forma de cadena:

Todavía hay una gran brecha con el formato que queremos [[39.1279124, 117.3599854], [39.1279124, 117.3599854], ...], y comenzaremos a convertir los datos originales a continuación.

Convertir el tipo de número en la lista

Permítanme introducir dos oraciones primero:

re.split('',字符串名称)   #利用re模块按多个分割符进行分割,''内填分隔符号
map(function,列表名)   #map接收一个函数以及一个对象(列表),用函数处理这个列表内每一个元素,然后再将结果返回该列表

Use estas dos declaraciones para convertir las cadenas de la lista en tipos de punto flotante

anidamiento de división de lista

Por ejemplo, la lista original es [1,2,3,4,5,6], pero ahora necesito cambiarla a [[1,2],[3,4],[5,6]], la grande La lista se divide en varias formas de lista más pequeñas. Se requiere la siguiente declaración

n = ?   # ?为自定义值 要按几个进行分割操作
[list[i:i+n] for i in range(0,len(列表名[]),n)]   #对列表list进行操作 注意[i:i+n]是左闭右开区间

Esto permite anidar listas

código completo

import sys
import re
result=[]
file_path = r'C:\Users\xy.txt'
with open(file_path,'r') as f:
    result =f.read()
    split = re.split(',|\n',result) #列表分割
    splits = list(map(float,split))  #列表字符串转换为浮点型
    n = 2  #大列表中几个数据组成一个小列表
    a = [splits[i:i + n] for i in range(0, len(splits), n)]
    print(a)

El resultado es el que se muestra a continuación:

[[39.1279124, 117.3599854], [39.1279124, 117.3599854], [39.1279124, 117.3599701], [39.1279106, 117.3599724], [39.1279106, 117. 3599724], [39.1279106, 117.3599724], [39.1279106, 117.3599724], [39.1279106, 117.3599724], [ 39.1279106, 117.3599724], [39.1279124, 117.3599854], [39.1279124, 117.3599854], [39.1279106, 117.3599724], [39.1279106, 117.3 599724], [39.1279124, 117.3599854], [39.1279124, 117.3599854], [39.1279124, 117.3599854], [39.1279124, 117.3599854], [39.1278992, 117.3599873], [39.1278992, 117.3599873], [39.1277727, 117.3601227], [39.1277611, 117.3601379], [39. 1277504, 117.3601665], [39.1277275, 117.3602112], [39.1277161, 117.360256], [39.1277046, 117.360271] , [39.1276932, 117.3603157], [39.1276796, 117.3603516]]

El código no es largo, pero aún se puede pensar en el pensamiento lógico interno.

Supongo que te gusta

Origin blog.csdn.net/AAAAAAAKing/article/details/83350178
Recomendado
Clasificación