Найти - Пользователи
Полная версия: Сортировка 2-х списков.
Начало » Python для новичков » Сортировка 2-х списков.
1
DevellMen
Привет всем. Есть 2 списка
a = ['мама', 'рама', ' мыла', 'тут', ' там']
b = [3, 6, 1, 9, 2]
То есть в 1-м массиве лежат слова, а в другом частота их повторений.
В итоге нужно сделать список со словами, отсортированными по частоте.
Я сейчас голову сломаю)
sergeek
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
ну или так
from operator import itemgetter
list(map(itemgetter(0), sorted(zip(a, b), key=itemgetter(1))))
Out[8]: [' мыла', ' там', 'мама', 'рама', 'тут']
0xKirill
или так:
[i[1] for i in sorted(zip(b, a))]
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB