od 第86题 python 版本(精简版)

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2022/6/5 22:59
# @Author  : Jonathon
# @File    : 86.py
# @Software: PyCharm
# @ Motto : 客又至,当如何

def func(n, ids, score):
    '''
    题目要求:


    :param n:
    :param li:
    :return:
    '''
    # d = dict(zip(ids, score))
    # for i in d:
    #     if d[i] < 3:
    #         d.pop(i)
    d = {}
    se = set(ids)
    for i in se:
        d[i] = []
    for k, v in zip(ids, score):
        d[k].append(v)
    for i in se:
        if d[i].__len__() < 3:
            d.pop(i)
        else:
            d[i] = sum(sorted(d[i][:3]))
    d_order = sorted(d.items(), key=lambda x: x[1], reverse=True)
    d_order = bubble(d_order)
    # for i in sorted(dict.items(), key=lambda x: x[1], reverse=True):
    #     print(i)
    d_order = list(map(lambda x: x[0], d_order))
    print(d_order)


def bubble(li):
    # [(3, 188), (5, 188), (7, 139), (4, 139)]
    n = li.__len__()
    for i in range(n):
        for j in range(i + 1, n):

            if li[j - 1][1] == li[j][1]:
                if li[j - 1][0] < li[j][0]:
                    li[j - 1], li[j] = li[j], li[j - 1]
    return li


if __name__ == '__main__':
    '''
    13
    3,3,7,4,4,4,4,7,7,3,5,5,5
    53,80,68,24,39,76,66,16,100,55,53,80,55
    '''
    # func(13, [3, 3, 7, 4, 4, 4, 4, 7, 7, 3, 5, 5, 5], [53, 80, 68, 24, 39, 76, 66, 16, 100, 55, 53, 80, 55])
    print(bubble([(3, 188), (5, 188), (7, 184), (4, 139)]))

 

posted @ 2022-06-07 00:02  pie神  阅读(62)  评论(0编辑  收藏  举报