Форум сайта python.su
0
Привет всем. Есть 2 списка
a = ['мама', 'рама', ' мыла', 'тут', ' там'] b = [3, 6, 1, 9, 2]
Офлайн
43
a = ['мама', 'рама', ' мыла', 'тут', ' там'] b = [3, 6, 1, 9, 2] class Word: def __init__(self, word, freq): self.word = word self.freq = freq def __lt__(self, other): return self.freq < other.freq def __repr__(self): return '<{} :{}>'.format(self.word,self.freq) sorted(map(Word,a,b)) Out[3]: [< мыла :1>, < там :2>, <мама :3>, <рама :6>, <тут :9>]
Отредактировано sergeek (Июнь 20, 2013 17:01:44)
Офлайн
43
ну или так
from operator import itemgetter list(map(itemgetter(0), sorted(zip(a, b), key=itemgetter(1)))) Out[8]: [' мыла', ' там', 'мама', 'рама', 'тут']
Офлайн
1
или так:
[i[1] for i in sorted(zip(b, a))]
Офлайн