Rodegast
Он на сортировке списка из пар (слово, число) выдаёт мне ошибку. Я уже про это писал.
idx =
sorted(, key=lambda x: idx.index(x))
Так сортировка проходит корректно только по первым буквам:
idx = [u"а", u"б", u"в", u"г", u"д", u"е", u"ё", u"ж", u"з", u"и", u"й", u"к", u"л", u"м", u"н",
u"о", u"п", u"р", u"с", u"т", u"у", u"ф", u"х", u"ц", u"ч", u"ш", u"щ", u"ъ", u"ы", u"ь",
u"э", u"ю", u"я"]
for i in sorted([(u"метла", 1), (u"улитка", 3), (u"мороз", 1), (u"ёжик", 1), (u"емеля", 1),
(u"ежевика", 3), (u"ель", 2), (u"ёлка", 3), (u"метёлка", 1),
(u"муляж", 1), (u"мёд", 1)], key=lambda x: idx.index(x[0][0])):
print(i)
вторая буква ё уже сортируется не корректно:
('емеля', 1)
('ежевика', 3)
('ель', 2)
('ёжик', 1)
('ёлка', 3)
('метла', 1)
('мороз', 1)
('метёлка', 1)
('муляж', 1)
('мёд', 1)
('улитка', 3)
py.user.next
Я думал, ты сможешь переделать, поэтому просто показал, как нужно сделать компаратор.
lst = [('метла', 1), ('улитка', 3), ('мороз', 1), ('ёжик', 1), ('емеля', 1),
('ежевика', 3), ('ель', 2), ('ёлка', 3), ('метёлка', 1),
('муляж', 1), ('мёд', 1)]
def tr(s):
alpha = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя' \
'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'
return tuple(map(alpha.index, s))
lst.sort(key=lambda i: tr(i[0]))
for j in list:
print(j)
так выходит ошибка
C:\Python34\python.exe C
Users/Pawl/IdeaProjects/pyFirst/first.py
Traceback (most recent call last):
File “C
Users/Pawl/IdeaProjects/pyFirst/first.py”, line 12, in <module>
for j in list:
TypeError: ‘type’ object is not iterable
использую питон версии 3.4.3
UPD
print(lst) - так заработало! Ну-ка поразбираюсь ещё с Вашим примером! Спасибо, плюсую!
UPD UPD
так тоже заработало, я просто тупанул. Всем спасибо, проблема решена, я получил инфу к размышлению, тему закрываю.