鱼C论坛

 找回密码
 立即注册
123
返回列表 发新帖
楼主: 冬雪雪冬

[技术交流] Python:每日一题 94(答题领鱼币)

[复制链接]
发表于 2020-3-19 14:15:58 | 显示全部楼层
  1. def f_94(lst: list):
  2.     lst.sort(key=lambda x: (x[1], -ord(x[0])), reverse=True)
  3.     for i, j in enumerate(lst):
  4.         rank = i if j[1] == lst[i-1][1] else i+1
  5.         print(rank, j[0], j[1])
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 10:55:27 | 显示全部楼层
def fun94(s):
    sorted_s = sorted(list(set([x[1] for x in s])))[::-1]
    for i in sorted_s:
        for j in s:
            if j[1] == i:
                print('%s %s %s'%(sorted_s.index(i)+1,j[0],j[1]))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-6 11:13:52 | 显示全部楼层
  1. score = [('A', 80), ('B', 86), ('C', 92), ('D', 87), ('E', 88), ('F', 85),
  2.          ('G', 86), ('H', 89), ('I', 88), ('J', 94), ('K', 94), ('L', 80),
  3.          ('M', 83), ('N', 80), ('O', 88), ('P', 94), ('Q', 82), ('R', 84),
  4.          ('S', 96), ('T', 100), ('U', 82), ('V', 81), ('W', 94), ('X', 81),
  5.          ('Y', 89), ('Z', 92)]
  6. score = sorted(score,key=lambda x:x[1])[::-1]
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-1 17:25:07 | 显示全部楼层
  1. def order(score):
  2.     # 将列表按成绩降序排序
  3.     score = sorted(score, key=lambda x: x[1], reverse=True)
  4.     # 当前名次以及上一位同学的名次
  5.     rank, last_rank = 1, 0
  6.     # 上一位同学的成绩
  7.     last_score = 120
  8.     # 最终的排名结果
  9.     results = []
  10.     for each in score:
  11.         # 判断当前同学成绩是否跟上一位同学相等
  12.         if each[1] != last_score:
  13.             # 若不等,排到新的名次
  14.             results.append((rank, each[0], each[1]))
  15.             last_rank = rank
  16.             last_score = each[1]
  17.             rank += 1
  18.         else:
  19.             # 若相等,跟上一位同学一样名次
  20.             results.append((last_rank, each[0], each[1]))
  21.             rank += 1
  22.     # 循环打印排名
  23.     for info in results:
  24.         print(info[0], info[1], info[2])
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-8 12:00:43 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-20 23:57:17 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-21 16:02:05 | 显示全部楼层
  1. def chooseSecond(element):
  2.     return element[1]   
  3. def score():
  4.     score = [('A', 80), ('B', 86), ('C', 92), ('D', 87), ('E', 88), ('F', 85),
  5.              ('G', 86), ('H', 89), ('I', 88), ('J', 94), ('K', 94), ('L', 80),
  6.              ('M', 83), ('N', 80), ('O', 88), ('P', 94), ('Q', 82), ('R', 84),
  7.              ('S', 96), ('T', 100), ('U', 82), ('V', 81), ('W', 94), ('X', 81),
  8.              ('Y', 89), ('Z', 92)]
  9.     j = 0
  10.     score.sort(key=chooseSecond,reverse = True)
  11.     for i in range(0,len(score)):
  12.         if i>0:
  13.             if score[i-1][1] == score[i][1]:
  14.                 j += 1
  15.             else:
  16.                 j = 0
  17.             print(str(i-j+1)+' '+score[i][0]+' '+str(score[i][1]))
  18.         else:
  19.             print(str(i+1)+' '+score[i][0]+' '+str(score[i][1]))

  20. if __name__ == '__main__':
  21.     score()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-22 02:04:44 From FishC Mobile | 显示全部楼层
看答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-8 08:57:26 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-19 07:23:25 From FishC Mobile | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-19 07:26:09 From FishC Mobile | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 18:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表