我想通过查找替换使用unicode字符的分数,如果它在字典中但是找不到方法。
fixs = {
'1/2': '¹⁄₂',
'1/4': '¹⁄₄',
'3/8': '³⁄₈',
...
# '': '⁰¹²³⁴⁵⁶⁷⁸⁹⁄₀₁₂₃₄₅₆₇₈₉',
}
我目前的解决方案显然不好
def fix_fraction(string):
return string.replace('1/2', '¹⁄₂').replace('1/4', '¹⁄₄').replace('3/8', '³⁄₈')
fix_fraction
的输入可能会将文字混入未知位置,因此我不能将分数拆分出来,而且我无法成功写出regex
。
样本用法:
print(fix_fraction('item A d=1/2″'))
print(fix_fraction('item B d=3/8 m'))
item A d=¹⁄₂″
item B d=³⁄₈ m
字典预计不会超过100个条目,但也欢迎支持任何分数的终极解决方案。
知道怎么做才能正确吗?
答案 0 :(得分:1)
一种可能的方法是循环遍历fixs
并替换循环中文本中的项目:
In [938]: text = 'item B d=3/8 m'
In [939]: for k in fixs:
...: text = text.replace(k, fixs[k])
...:
In [940]: text
Out[940]: 'item B d=³⁄₈ m'