剥离和格式化坐标对
Strip and format coordinate pairs
我有一个坐标数组 test
,我想将其转换为字符串格式
print(test)
[[[-122.45939656328747, 37.796690447896445], [-122.45859061899071, 37.785810199890264], [-122.44198816647757, 37.786535549757346], [-122.43578239539256, 37.789920515803715], [-122.42828711343275, 37.77444638530603]]]
预期输出是
"-122.45939656328747, 37.796690447896445 | 122.45859061899071, 37.785810199890264 | -122.44198816647757, 37.786535549757346 | -122.43578239539256, 37.789920515803715 |
-122.42828711343275, 37.77444638530603"
以下代码仅删除外括号,如何删除内括号并使用 python 在坐标对之间放置管道(“|”)?
import re
print(str(test).strip('[]'))
test = re.sub('[[]]', '', test)
嗯,看起来您有一个包含一个项目的列表,而该项目是列表的列表。有点奇怪但还可以。第一步是提取列表的列表,很简单,只需将索引设为零即可。然后我要做的是让每个内部列表成为一个字符串(而不是像上面那样将整个列表都转换为字符串)并在大列表上使用 join,如下所示:
formatted = ' | '.join([str(pair) for pair in test[0]])
编辑:意识到上面的答案会导致每一对都有括号,我想你不想要的。只需删除第一个和最后一个字符即可轻松修复:
formatted = ' | '.join([str(pair)[1:-1] for pair in test[0]])
由于外括号在你的问题中似乎并不重要,我通过test[0]
将其删除,下面的代码应该可以满足你的要求。
result = [str(coor).strip('[]') for coor in test[0]]
result = " | ".join(result)
我有一个坐标数组 test
,我想将其转换为字符串格式
print(test)
[[[-122.45939656328747, 37.796690447896445], [-122.45859061899071, 37.785810199890264], [-122.44198816647757, 37.786535549757346], [-122.43578239539256, 37.789920515803715], [-122.42828711343275, 37.77444638530603]]]
预期输出是
"-122.45939656328747, 37.796690447896445 | 122.45859061899071, 37.785810199890264 | -122.44198816647757, 37.786535549757346 | -122.43578239539256, 37.789920515803715 |
-122.42828711343275, 37.77444638530603"
以下代码仅删除外括号,如何删除内括号并使用 python 在坐标对之间放置管道(“|”)?
import re
print(str(test).strip('[]'))
test = re.sub('[[]]', '', test)
嗯,看起来您有一个包含一个项目的列表,而该项目是列表的列表。有点奇怪但还可以。第一步是提取列表的列表,很简单,只需将索引设为零即可。然后我要做的是让每个内部列表成为一个字符串(而不是像上面那样将整个列表都转换为字符串)并在大列表上使用 join,如下所示:
formatted = ' | '.join([str(pair) for pair in test[0]])
编辑:意识到上面的答案会导致每一对都有括号,我想你不想要的。只需删除第一个和最后一个字符即可轻松修复:
formatted = ' | '.join([str(pair)[1:-1] for pair in test[0]])
由于外括号在你的问题中似乎并不重要,我通过test[0]
将其删除,下面的代码应该可以满足你的要求。
result = [str(coor).strip('[]') for coor in test[0]]
result = " | ".join(result)