首页 > 解决方案 > 动态构建一个unicode字符?

问题描述

给定此字典,如何动态输出正确的 unicode 编号:

UNICODE_CHARS = {
        0: "\u2070",
        1: "\u00B9",
        2: "\u00B2",
        3: "\u00B3",
        4: "\u2074",
        5: "\u2075",
        6: "\u2076",
        7: "\u2077",
        8: "\u2078",
        9: "\u2079",
    }

例如:数字 177 将是:

print(f"{UNICODE_CHARS.get(1)}{UNICODE_CHARS.get(7)}{UNICODE_CHARS.get(7)}")

我将如何在循环中构造它?

for i in range(1000):
    # how to print each number here with unicode? Up until 9 is easy
    # eg UNICODE_CHARS.get(i), but after 9 it gets tricky, and with 2, 3, or 4 digits even harder 
    print(....) 

标签: python

解决方案


首先,您应该从 Char -> Char(而不是 int -> Char)更改映射。

然后将数字 (i) 转换为字符串,并为字符串中的每个“数字”构建映射字符列表。

然后使用 "".join 再次将列表转换为字符串

完整示例:

UNICODE_CHARS = {
    "0": "\u2070",
    "1": "\u00B9",
    "2": "\u00B2",
    "3": "\u00B3",
    "4": "\u2074",
    "5": "\u2075",
    "6": "\u2076",
    "7": "\u2077",
    "8": "\u2078",
    "9": "\u2079",
}

for i in [1, 9, 123, 177]:
    print("".join([UNICODE_CHARS[c] for c in str(i)]))

输出:

¹
⁹  
¹²³
¹⁷⁷

我已将您更改range为列表,但范围相同。


推荐阅读