比如说我有一个电话号码,比如:05395042123我想将其转换为如下格式:xxxx xxx xx xx我要怎么做?谁有函数?
ia2d9nvy1#
手工操作非常简单,如果只有一种格式,这可能是最好的方法:
def phone_split(x): return ' '.join([x[0:4], x[4:7], x[7:9], x[9:]])
编辑:
还有一种更普遍的方式:
def phone_split(x, format=[4,3,2,2]): parts = [] reduce(lambda x, y: parts.append(x[:y]) or x[y:], format, x) return ' '.join(parts)
它使用append()副作用来累加结果,并使用or来满足lambda的 * 单行 * 要求。
append()
or
编辑2:
我刚刚意识到,你可能想在Django模板中使用它。如果是这样的话,你可能想使用上面的代码来定义一个custom template tag,并将其注册为一个简单的过滤器。
p5cysglq2#
def mask_mobile_number(self,obj): return "XXXXXX{}".format(str(obj.mobile_number)[6:])
2条答案
按热度按时间ia2d9nvy1#
手工操作非常简单,如果只有一种格式,这可能是最好的方法:
编辑:
还有一种更普遍的方式:
它使用
append()
副作用来累加结果,并使用or
来满足lambda的 * 单行 * 要求。编辑2:
我刚刚意识到,你可能想在Django模板中使用它。如果是这样的话,你可能想使用上面的代码来定义一个custom template tag,并将其注册为一个简单的过滤器。
p5cysglq2#