如何从字符串中检索列表列表?

2024-09-25 02:33:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下字符串mydata,它实际上是一个嵌入的列表列表:

 u'[[[1.7594271439650333, 41.82815539277221], [1.7594360823099031,41.82815010753548], [1.7594365489105126,41.828102229437455], [1.75943006926896,41.82809815273617], [1.7593938715967752,41.8280981826361], [1.75938821767524, 41.828104309113314], [1.759388051589258, 41.8281507714983], [1.7594271439650333, 41.82815539277221]]]

我想将其转换为元组列表,如下所示:

mytuple = [tuple(l) for l in mydata[0]]

但它不起作用,因为mydata确实是一个字符串


Tags: 字符串in列表for元组tuplemydatamytuple
1条回答
网友
1楼 · 发布于 2024-09-25 02:33:53

由于字符串是列表文字,因此可以使用文档中的ast.literal_eval

Safely evaluate an expression node or a Unicode or Latin-1 encoded string containing a Python literal or container display.

import ast

a = u'[[[1.7594271439650333, 41.82815539277221], [1.7594360823099031, 41.82815010753548], [1.7594365489105126, 41.828102229437455], [1.75943006926896, 41.82809815273617], [1.7593938715967752, 41.8280981826361], [1.75938821767524, 41.828104309113314], [1.759388051589258, 41.8281507714983], [1.7594271439650333, 41.82815539277221]]]'
mydata = ast.literal_eval(a)
mytuple = [tuple(l) for l in mydata[0]]

print(mytuple)

输出

[(1.7594271439650333, 41.82815539277221), (1.7594360823099031, 41.82815010753548), (1.7594365489105126, 41.828102229437455), (1.75943006926896, 41.82809815273617), (1.7593938715967752, 41.8280981826361), (1.75938821767524, 41.828104309113314), (1.759388051589258, 41.8281507714983), (1.7594271439650333, 41.82815539277221)]

相关问题 更多 >