Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 24, 2014 10:57:59

oxxxymiron
Зарегистрирован: 2014-10-17
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Очередные интересные задачи из Duke University. +200 к карме за решение :D

Питон не мое, а в универе требуют…

Прикреплённый файлы:
attachment APT SortByFreqs.pdf (147,8 KБ)

Офлайн

#2 Окт. 27, 2014 11:43:09

alexsis
Зарегистрирован: 2013-07-26
Сообщения: 148
Репутация: +  9  -
Профиль   Отправить e-mail  

Очередные интересные задачи из Duke University. +200 к карме за решение :D

def sort(data):
    freq = {}
    for i in data:
        try:
            freq[i] += 1
        except KeyError:
            freq[i] = 1
    result = sorted(list(freq.items()), key=lambda x: (x[1], reversed(x[0])), reverse=True)
    return [x[0] for x in result]
data = ["apple", "pear", "cherry", "apple", "pear", "apple", "banana"]
print(sort(data))

Офлайн

#3 Окт. 27, 2014 12:07:33

GreyZmeem
От: Киев
Зарегистрирован: 2013-12-03
Сообщения: 147
Репутация: +  34  -
Профиль   Отправить e-mail  

Очередные интересные задачи из Duke University. +200 к карме за решение :D

# -*- coding: utf-8 -*-
from itertools import groupby
 
def sort_by_freq(data):
    data.sort()
    data = sorted(
        [(item, len(list(group))) for item, group in groupby(data)], 
        key=lambda x: x[1], 
        reverse=True
    )
    return [x[0] for x in data]
 
data = ['a', 'b', 'c', 'a', 'b', 'b', 'e']
print sort_by_freq(data)

Офлайн

#4 Окт. 27, 2014 12:44:19

GreyZmeem
От: Киев
Зарегистрирован: 2013-12-03
Сообщения: 147
Репутация: +  34  -
Профиль   Отправить e-mail  

Очередные интересные задачи из Duke University. +200 к карме за решение :D

# -*- coding: utf-8 -*-
from collections import Counter
 
def sort_by_freq(data):
    count = Counter(data)
    return sorted(count.keys(), key=lambda x: count[x], reverse=True)
 
data = ['a', 'b', 'c', 'a', 'b', 'b', 'e']
print sort_by_freq(data)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version