将数字字符串转换为超级字符串

2024-09-30 12:15:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要把数字字符串转换成上标,有更好的(内置)方法吗?在

def to_sup(s):
    sups={u'1': u'\xb9', 
          u'0': u'\u2070',
          u'3': u'\xb3', 
          u'2': u'\xb2',
          u'5': u'\u2075',
          u'4': u'\u2074',
          u'7': u'\u2077',
          u'6': u'\u2076',
          u'9': u'\u2079',
          u'8': u'\u2078'}
    if s.isdigit():
        return ''.join([sups[i] for i in s])
print to_sup('0123')

输出:

^{pr2}$

Tags: to方法字符串def数字内置xb9xb3
1条回答
网友
1楼 · 发布于 2024-09-30 12:15:41

你的方法有点不对。最好是:

def to_sup(s):
    sups = {u'0': u'\u2070',
            u'1': u'\xb9',
            u'2': u'\xb2',
            u'3': u'\xb3',
            u'4': u'\u2074',
            u'5': u'\u2075',
            u'6': u'\u2076',
            u'7': u'\u2077',
            u'8': u'\u2078',
            u'9': u'\u2079'}

    return ''.join(sups.get(char, char) for char in s)  # lose the list comprehension

s.isdigit()只检查第一个字母,这可能没有意义。

如果出于某种原因,你想要一条直线:

^{pr2}$

相关问题 更多 >

    热门问题