使用';更换';Python中的函数
我有一个访问表,它有一组坐标值,单位为度、分、秒,它们的格式如下:使用';更换';Python中的函数,python,Python,我有一个访问表,它有一组坐标值,单位为度、分、秒,它们的格式如下: my_str = "90-12-28.15" my_str = my_str.replace("-","°",1)# 1 means you are going to replace the first ocurrence only my_str = my_str.replace("-","'",1) my_str = my_str + "\"" 90-12-28.15 我想将其重新格式化如下: my_str = "90-12
my_str = "90-12-28.15"
my_str = my_str.replace("-","°",1)# 1 means you are going to replace the first ocurrence only
my_str = my_str.replace("-","'",1)
my_str = my_str + "\""
90-12-28.15
我想将其重新格式化如下:
my_str = "90-12-28.15"
my_str = my_str.replace("-","°",1)# 1 means you are going to replace the first ocurrence only
my_str = my_str.replace("-","'",1)
my_str = my_str + "\""
90°12'28.15“
基本上,将破折号替换为度、分和秒字符,度和分之间留有空格,分和秒之间留有空格
我正在考虑使用“替换”功能,但我不确定如何将破折号的第一个实例替换为度字符(°)和空格,然后检测破折号的第二个实例,并放置分钟字符和空格,最后在末尾添加秒字符
感谢您的帮助
Mike您可能希望使用Python的正则表达式模块
re
,尤其是re.sub()
。有关详细信息,请查看Python文档
如果您不熟悉正则表达式,请查看本教程,也可以查看Python文档
import re
text = 'replace "-" in 90-12-28.15'
print(re.sub(r'(\d\d)-(\d\d)-(\d\d)\.(\d\d)', r'''\1° \2' \3.\4"''', text))
# use \d{1,2} instead of \d\d if single digits are allowed
我会把你的第一根弦分开:
# -*- coding: utf-8 -*-
str = '90-12-28.15'
arr = str.split('-')
str2 = arr[0] +'° ' + arr[1] + '\'' +arr[2] +'"'
print str2
虽然正则表达式和
split()
都是很好的解决方案,但使用replace()
来实现这一点相当容易
lat = "90-12-28.15"
lat = lat.replace("-", "° ", 1)
lat = lat.replace("-", "' ", 1)
lat = lat + '"'
或者您可以在一行中完成所有操作:
lat = lat.replace("-", "° ", 1).replace("-", "' ", 1) + '"'
python的“replace”字符串方法应该易于使用
在您的情况下,您可以这样做:
my_str = "90-12-28.15"
my_str = my_str.replace("-","°",1)# 1 means you are going to replace the first ocurrence only
my_str = my_str.replace("-","'",1)
my_str = my_str + "\""
酷,我不知道你能这么做。你提供的链接没有我能找到的替换方法的信息。实际信息在页面顶部的
String Methods
链接中。