Входящий Старшеклассник :
Объяснение :
Функция NormalizeStrings()
для получения значения уваженияцифру, начинающую строки из словаря и добавляем соответственно.
Функция replaceString()
для замены значений из dict_
Функция DeNormalizeStrings()
для выполнения противоположных NormalizeStrings()
Функция DereplaceString()
, чтобы сделать противоположное replaceString()
alist = ['Tree', 'Plant', 'Bird', '7animal', 'Beta', '4qwerty']
alist2 = []
dict_ = {1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e', 6: 'f', 7: 'g', 8: 'h', 9: 'i',
10: 'j', 11: 'k', 12: 'l', 13: 'm', 14: 'n', 15: 'o', 16: 'p', 17: 'q', 18: 'r',
19: 's', 20: 't', 21: 'u', 22: 'v', 23: 'w', 24: 'x', 25: 'y', 26: 'z'}
def replaceString(s):
return s[0].replace(s[0],dict_[int(s[0])])
def NormalizeStrings(alist):
for s in alist:
if s[0].isdigit():
s = replaceString(s) + s[1:]
alist2.append(s)
else:
alist2.append(s)
def DeReplaceString(s):
for name in dict_:
if dict_[name] == s[0]:
return s[0].replace(s[0], str(name))
def DeNormalizeStrings(alist):
alist2.clear()
for s in alist:
if s[0].islower():
s = DeReplaceString(s) + s[1:]
alist2.append(s)
else:
alist2.append(s)
NormalizeStrings(alist)
print(alist2)
print(sorted(alist2, key=lambda s: s.lower()))
DeNormalizeStrings(sorted(alist2, key=lambda s: s.lower()))
print(alist2)
ВЫХОД:
['Tree', 'Plant', 'Bird', 'ganimal', 'Beta', 'dqwerty']
['Beta', 'Bird', 'dqwerty', 'ganimal', 'Plant', 'Tree']
['Beta', 'Bird', '4qwerty', '7animal', 'Plant', 'Tree']