gpt4 book ai didi

python - 以适用于str和unicode的方式使用translate的python方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 17:52:40 25 4
gpt4 key购买 nike

我有一个函数可以清除 str 中的特定字符:

def _clean_name(name):
return name.translate(None, "\n ").replace('.', '_')

现在这个函数也必须支持unicode,所以我最终得到了这个版本:

def _clean_name(name):
if type(name) is unicode:
return name.translate({ord('\n'): None, ord(' '): None, ord('.'): ord('_')})
else:
return name.translate(None, "\n ").replace('.', '_')

但这对我来说并不太Pythonic。有人有更好的解决方案吗?

最佳答案

这可能更像是一种hackish的做法,而不是 Pythonic 的做法 - 但一个优点是它将消除代码重复,并且可能应该适用于 unicode 的子类(您绝对需要检查如果需要的话!)。

因此,利用类型对象是可调用的,并且 unicode 和 str 都实现 join 操作:

def _clean_name(name):
return type(name)().join(
# ^^^^^^^^^^^^
# build an empty str or unicode object
[{'.': '_', '\n':'', ' ':''}.get(c,c) for c in name]
)

关于python - 以适用于str和unicode的方式使用translate的python方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28925068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com