Демихов Валентин, 611 группа CompactPairs 14019
Каплан Владимир Сергеевич 611 ВМК CompactPairs 14686
f1import stringf1import string
22
3class Pairs:3class Pairs:
n4    _alphabet = list(string.ascii_lowercase) + list(string.ascii_uppercan4    _a = list(string.ascii_lowercase) + list(string.ascii_uppercase)
>se) 
5    _mapping_static = {}5    _m = {}
66
n7    def __init__(self, size):n7    def __init__(self, s):
8        if size not in Pairs._mapping_static:8        if s not in Pairs._m:
9            Pairs._mapping_static[size] = {char: (size + idx - 1) % 52 +9            Pairs._m[s] = {c: (s + i - 1) % 52 + 1 for i, c in enumerate
> 1 for idx, char in enumerate(self._alphabet)}>(self._a)}
10        self._mapping = Pairs._mapping_static[size]10        self._d = Pairs._m[s]
1111
n12    def __setattr__(self, attr, val):n12    def __setattr__(self, k, v):
13        if attr in self._alphabet:13        if k in self._a:
14            self._mapping[attr] = val14            self._d[k] = v
15        else:15        else:
n16            super().__setattr__(attr, val)n16            super().__setattr__(k, v)
1717
n18    def __getattr__(self, attr):n18    def __getattr__(self, k):
19        if attr in self._mapping:19        if k in self._d:
20            return self._mapping[attr]20            return self._d[k]
21        raise AttributeError()21        raise AttributeError()
2222
23    def __repr__(self):23    def __repr__(self):
t24        return ' '.join(sorted(self._alphabet, key=lambda x: self._mappit24        return ' '.join(sorted(self._a, key=lambda x: self._d[x]))
>ng[x])) 
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op