【发布时间】:2018-02-20 13:29:12
【问题描述】:
我有一个地址列表:
addr = ['100 NORTH MAIN ROAD',
'100 BROAD ROAD APT.',
'SAROJINI DEVI ROAD',
'BROAD AVENUE ROAD']
我需要在以下函数中完成替换工作:
def subst(pattern, replace_str, string):
通过在此函数之外定义一个模式并将其作为参数传递给 subst。
我需要这样的输出:
addr = ['100 NORTH MAIN RD',
'100 BROAD RD APT.',
'SAROJINI DEVI RD ',
'BROAD AVENUE RD']
所有“ROAD”字符串都替换为“RD”
def subst(pattern, replace_str, string):
#susbstitute pattern and return it
new=[]
for x in string:
new.insert((re.sub(r'^(ROAD)','RD',x)),x)
return new
def main():
addr = ['100 NORTH MAIN ROAD',
'100 BROAD ROAD APT.',
'SAROJINI DEVI ROAD',
'BROAD AVENUE ROAD']
#Create pattern Implementation here
pattern=r'^(ROAD)'
print (pattern)
#Use subst function to replace 'ROAD' to 'RD.',Store as new_address
new_address=subst(pattern,'RD',addr)
return new_address
我已经完成了这个并且得到了以下错误
Traceback(最近一次调用最后一次):
文件“python”,第 23 行,在 文件“python”,第 20 行,在 main 文件“python”,第 7 行,在 subst
TypeError: 'str' 对象不能被解释为整数
【问题讨论】:
-
在寻求帮助之前,请先尝试并展示您的尝试
-
谢谢@sshashank124,我会附上。
-
def subst(pattern, replace_str, string): #susbstitute 模式并返回 new=[] for x in string: new.insert((re.sub(r'^(ROAD)', 'RD',x)),x) return new def main(): addr = ['100 NORTH MAIN ROAD', '100 BROAD ROAD APT.', 'SAROJINI DEVI ROAD', 'BROAD AVENUE ROAD'] #创建图案这里实现pattern=r'^(ROAD)' #使用subst函数将'ROAD'替换为'RD.',存储为new_address new_address=subst(pattern,'RD',addr) return new_address print(main())
-
将其编辑到问题本身中
标签: python python-3.x regex-group