【python cookbook】 替换字符串中的子串

任务:

给定一个字符串 通过查询一个替换字典 将字符串中被标记的子字符串替换掉

#!/usr/bin/python
# -*- coding: utf-8 -*-

#替换字符串中的子串

def expand(format,d,market='"',safe=False):
    if safe:
        def lookup(w):
            return d.get(w,w.join(marker*2))
    else:
        def lookup(w):
            return d[w]
    parts = format.split(marker)
    parts[1::2] = map(lookup,parts[1::2])
    return ''.join(parts)

if __name__=='__main__':
    print expand('just "a" test',{'a':"one"})

当safe = Ture 时要求被标记的字符串应该能在字典中查到 如果查不到 不抛出KetError异常 使用get() 当值不存在时 返回在两边加了标记的被查询的字符串

如果safe = False 时 被标记的字符串如果在字典中查不到 抛出错误

 

get()的用法

>>> dict1 #空的字典  
{}  
>>> dict1.get('a') #键‘a’在dict1中不存在,返回none  
>>> dict1.get('d1','no1') #default参数给出值'no1',所以返回'no1'  
'no1'  
>>> dict1['a']='no1' #插入一个新元素  
>>> dict1  
{'a': '1111'}  
>>> dict1.get('a') #现在键'a'存在,返回其值  
'1111' 

转载于:https://www.cnblogs.com/cacique/archive/2012/07/25/2608824.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值