首页 > 解决方案 > 如何在python中为字符串添加括号

问题描述

我有一个字符串,我想转换为带括号的列表或字符串。我怎么做?

字符串是st = ((22027.0 22943.0, 22026.0 22939.0, 22025.0 22936.0, 22025.0 22932.0, 22027.0 22929.0, 22030.0 22926.0, 22031.0 22922.0, 22033.0 22919.0, 22033.0 22907.0, 22030.0 22908.0, 22029.0 22911.0))所需的输出应为以下内容:

([(22027.0, 22943.0), (22026.0, 22939.0), (22025.0, 22936.0), (22025.0, 22932.0), (22027.0, 22929.0), (22030.0, 22926.0), (22031.0, 22922.0), (22033.0, 22919.0), (22033.0, 22907.0), (22030.0 ,22908.0), (22029.0, 22911.0)])

到目前为止我尝试了什么?

s = str('((22027.0 22943.0, 22026.0 22939.0, 22025.0 22936.0, 22025.0 22932.0, 22027.0 22929.0, 22030.0 22926.0, 22031.0 22922.0, 22033.0 22919.0, 22033.0 22907.0, 22030.0 22908.0, 22029.0 22911.0))')
op = s.replace(', ', '),(')

这不会给出所需的输出。如何获得以下输出?

([(22027.0, 22943.0), (22026.0, 22939.0), (22025.0, 22936.0), (22025.0, 22932.0), (22027.0, 22929.0), (22030.0, 22926.0), (22031.0, 22922.0), (22033.0, 22919.0), (22033.0, 22907.0), (22030.0 ,22908.0), (22029.0, 22911.0)])

标签: pythonpandasstringreplaceparentheses

解决方案


删除括号后会更容易。

从那里,您可以拆分逗号并从配对字符串中形成元组(在将它们转换为浮点数之后)

一位评论者有一个很好的单行,但这是一个 for 循环:

st =  "((22027.0 22943.0, 22026.0 22939.0, 22025.0 22936.0, 22025.0 22932.0, 22027.0 22929.0, 22030.0 22926.0, 22031.0 22922.0, 22033.0 22919.0, 22033.0 22907.0, 22030.0 22908.0, 22029.0 22911.0))"
st = [x.strip() for x in st[2:-2].split(",")]
res = []
for x in st:
    res.append(tuple(float(y) for y in x.split()))
print(res)

推荐阅读