Skip to main content
 首页 » 编程设计

python之在 Python 中从数组中删除字符串引号

2025年05月04日19pengyingh

我试图去掉数组中的一些字符,所以只剩下 x 和 y 坐标,用逗号分隔,如下所示:

[[316705.77017187304,790526.7469308273] 
 [321731.20991025254,790958.3493565321]] 

我已经使用 zip() 创建了 x 和 y 值的 tuple(作为对来自字符串列表),然后我使用 numpy 将其转换为数组。该数组目前看起来像这样:

[['316705.77017187304,' '790526.7469308273,'] 
 ['321731.20991025254,' '790958.3493565321,']] 

我需要输出为一个数组。

我对如何去掉单引号和第二个逗号感到很困惑。我读过 map() 可以将字符串更改为数字,但我无法让它工作。

提前致谢

请您参考如下方法:

使用 31.2. ast — Abstract Syntax Trees¶

import ast 
xll =  [['321731.20991025254,' '790958.3493565321,'], ['321731.20991025254,' '790958.3493565321,']] 
>>> [ast.literal_eval(xl[0]) for xl in xll] 
[(321731.20991025254, 790958.3493565321), (321731.20991025254, 790958.3493565321)] 

上面给出了列表列表的元组列表,键入以下内容:

>>> [list(ast.literal_eval(xl[0])) for xl in xll] 
[[321731.20991025254, 790958.3493565321], [321731.20991025254, 790958.3493565321]] 

旧:我认为:

>>> sll 
[['316705.770172', '790526.746931'], ['321731.20991', '790958.349357']] 
>>> fll = [[float(i) for i in l] for l in sll] 
>>> fll 
[[316705.770172, 790526.746931], [321731.20991, 790958.349357]] 
>>>  

旧编辑:

>>> xll =  [['321731.20991025254,' '790958.3493565321,'], ['321731.20991025254,' '790958.3493565321,']] 
>>> [[float(s) for s in xl[0].split(',') if s.strip() != ''] for xl in xll] 
[[321731.20991025254, 790958.3493565321], [321731.20991025254, 790958.3493565321]]