Почему не работает выражение на Python 2.7, а в 3.6 работает?
Господи, что это за жесть? Это нельзя прочитать, это идеальная обфускация. Даже прогнав через автоформаттер, я всё равно нихрена не понялSOSTAV = "5C3B2E"
[
    "".join(c for c in SOSTAV[0:4] if c not in "1234567890+"),
    "",
    "".join(c for c in SOSTAV[0:3] if c not in "1234567890+"),
][(0 if SOSTAV[0:2] == u"10" else 1 if SOSTAV[0:2] < u"10" else 2)] + "." + [
    "",
    "СП",
    "ПП",
    "ЧП",
][
    (
        0
        if (["9", SOSTAV[0:1]][(0 if SOSTAV[0:2] == "10" else 1)]) < "1"
        else 1
        if (["9", SOSTAV[0:1]][(0 if SOSTAV[0:2] == "10" else 1)]) <= "4"
        else 2
        if (["9", SOSTAV[0:1]][(0 if SOSTAV[0:2] == "10" else 1)]) <= "7"
        else 3
    )
]
Вы бы хоть ошибку указали. Так-то я уже догадываюсь где должно упасть
UPD. добавить # -*- coding: utf-8 -*- в начале файла