Как разместить узлы на одном уровне в DOT?

Вот какой код, который примет любой символ, который отображает два слова UTF-16 и преобразует их в шестнадцатеричную последовательность.

s = '\U0001f62c \U0001f60e hello'

def pairup(b):
    return [(b[i] << 8 | b[i+1]) for i in range(0, len(b), 2)]

def utf16(c):
    e = c.encode('utf_16_be')
    return ''.join(chr(x) for x in pairup(e))

u = ''.join(utf16(c) for c in s)
print(repr(u))
print(u[0] == '\ud83d' and u[1] == '\ude2c')
print(len(u))

'\ud83d\ude2c \ud83d\ude0e hello'
True
11

Я думал, что это будет непросто, но это оказалось сложнее, чем я ожидал. Тем более, что я не понял проблему правильно в первый раз.

30
задан Thalecress 10 September 2014 в 15:45
поделиться