Mam ten kod, który działa zgodnie z oczekiwaniami. Ale z jakiegoś powodu usuwa angielskie litery. mydict = {b "090": b "0A8", b "091": b "0A9", b "...

0
shantanuo 21 marzec 2021, 10:02

1 odpowiedź

Najlepsza odpowiedź

W poniższym logiku jest błąd:

    if k in x:
        z = x.replace(k, v)
        newlist.append(z)

Jeśli x nie ma dopasowania swojego słownika, nie zostanie dodany do newlist. Musisz wyjaśnić tę sprawę.

mydict = {
    b"090": b"0A8",
    b"091": b"0A9",
    b"092": b"0AA",
    b"093": b"0AB",
    b"094": b"0AC",
    b"095": b"0AD",
    b"096": b"0AE",
    b"097": b"0AF",
}

y = "उताऱ्यावर/a"
newlist = list()
for i in y:
    x_replaced = False
    x = i.encode("raw_unicode_escape")
    for k, v in mydict.items():
        if k in x:
            z = x.replace(k, v)
            newlist.append(z)
            x_replaced = True
    if not x_replaced:
        newlist.append(x)

print(b"".join(newlist).decode("utf-8").encode("ascii").decode("unicode-escape"))
1
Dan Nagle 21 marzec 2021, 07:44