a = ['мама', 'рама', ' мыла', 'тут', ' там'] b = [3, 6, 1, 9, 2]
В итоге нужно сделать список со словами, отсортированными по частоте.
Я сейчас голову сломаю)
a = ['мама', 'рама', ' мыла', 'тут', ' там'] b = [3, 6, 1, 9, 2]
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>]
from operator import itemgetter list(map(itemgetter(0), sorted(zip(a, b), key=itemgetter(1)))) Out[8]: [' мыла', ' там', 'мама', 'рама', 'тут']
[i[1] for i in sorted(zip(b, a))]