鱼C论坛

 找回密码
 立即注册
楼主: 冬雪雪冬

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

[复制链接]
发表于 2017-9-13 12:48:50 | 显示全部楼层
mark
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-9-13 15:02:48 | 显示全部楼层
看看如何解体
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-13 16:51:00 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-9-13 20:31:31 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-9-13 21:02:22 | 显示全部楼层
Ssssss
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-13 22:15:52 | 显示全部楼层
不会啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-13 22:42:12 | 显示全部楼层
score = [('A', 80), ('B', 86), ('C', 92), ('D', 87), ('E', 88), ('F', 85),
         ('G', 86), ('H', 89), ('I', 88), ('J', 94), ('K', 94), ('L', 80),
         ('M', 83), ('N', 80), ('O', 88), ('P', 94), ('Q', 82), ('R', 84),
         ('S', 96), ('T', 100), ('U', 82), ('V', 81), ('W', 94), ('X', 81),
         ('Y', 89), ('Z', 92)]

for i in range(0,len(score),1):
    for j in range(i + 1,len(score),1):
        if score[i][1] < score[j][1]:
            temp = score[j]
            score[j] = score[i]
            score[i] = temp

num = 1
for i in range(0,len(score),1):
    if (i != 0 and score[i - 1][1] > score[i][1]):
        num = num + 1
    print (num, score[i])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-14 09:52:55 | 显示全部楼层
score.sort(key = lambda item:item[1], reverse=True)
rank = 1
for i in range(len(score)):
   
    if i == 0:
        print(rank, score[i])
    else:
        if score[i][1] == score[i-1][1]:
            print(rank, score[i])
        else:
            rank = i+1
            print(rank, score[i])

1 ('T', 100)
2 ('S', 96)
3 ('J', 94)
3 ('K', 94)
3 ('P', 94)
3 ('W', 94)
7 ('C', 92)
7 ('Z', 92)
9 ('H', 89)
9 ('Y', 89)
11 ('E', 88)
11 ('I', 88)
11 ('O', 88)
14 ('D', 87)
15 ('B', 86)
15 ('G', 86)
17 ('F', 85)
18 ('R', 84)
19 ('M', 83)
20 ('Q', 82)
20 ('U', 82)
22 ('V', 81)
22 ('X', 81)
24 ('A', 80)
24 ('L', 80)
24 ('N', 80)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-14 10:42:02 | 显示全部楼层
dasdfsadfasdf
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-14 17:25:13 | 显示全部楼层
score.sort(key=lambda n: n[1], reverse=True)
for m,n in enumerate(score):
        c = m+1 if n[1]!=score[m-1][1] else c
        print(c,n[0],n[1])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-17 19:13:53 From FishC Mobile | 显示全部楼层
好难
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-12-5 10:41:47 | 显示全部楼层
score = [('A', 80), ('B', 86), ('C', 92), ('D', 87), ('E', 88), ('F', 85),
         ('G', 86), ('H', 89), ('I', 88), ('J', 94), ('K', 94), ('L', 80),
         ('M', 83), ('N', 80), ('O', 88), ('P', 94), ('Q', 82), ('R', 84),
         ('S', 96), ('T', 100), ('U', 82), ('V', 81), ('W', 94), ('X', 81),
         ('Y', 89), ('Z', 92)]

def orderScore(score):
    orderedScore = sorted(score, key = lambda s:s[1], reverse = True)
    order = [i+1 for i in range(len(score))]
    for i in range(1, len(score)):
        if orderedScore[i][1] == orderedScore[i-1][1]:
            order[i] = order[i-1]
    for i,j in zip(order, orderedScore):
        print(i, j[0], j[1])

orderScore(score)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-25 16:37:59 | 显示全部楼层
def fun94(score):
    sorted_score = sorted(list(set([x[1] for x in score])))[::-1]
    for i in sorted_score:
        for j in score:
            if j[1] == i:
                print('%s %s %s'%(sorted_score.index(i)+1,j[0],j[1]))
                
if __name__ == '__main__':
    fun94(score = [('A', 80), ('B', 86), ('C', 92), ('D', 87), ('E', 88), ('F', 85),
                   ('G', 86), ('H', 89), ('I', 88), ('J', 94), ('K', 94), ('L', 80),
                   ('M', 83), ('N', 80), ('O', 88), ('P', 94), ('Q', 82), ('R', 84),
                   ('S', 96), ('T', 100), ('U', 82), ('V', 81), ('W', 94), ('X', 81),
                   ('Y', 89), ('Z', 92)])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-30 06:50:06 | 显示全部楼层
score.sort(key=lambda item: item[1],reverse=True)
temp = 1
for i in range(len(score)):
    if i == 0 or score[i][1] != score[i-1][2]:
        score[i] = (temp,)+score[i]
    else :
        score[i] = (score[i-1][0],) + score[i]
    temp += 1
print(score)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-30 13:09:00 | 显示全部楼层
谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-30 13:48:15 | 显示全部楼层
from itertools import groupby
score = [('A', 80), ('B', 86), ('C', 92), ('D', 87), ('E', 88), ('F', 85),
         ('G', 86), ('H', 89), ('I', 88), ('J', 94), ('K', 94), ('L', 80),
         ('M', 83), ('N', 80), ('O', 88), ('P', 94), ('Q', 82), ('R', 84),
         ('S', 96), ('T', 100), ('U', 82), ('V', 81), ('W', 94), ('X', 81),
         ('Y', 89), ('Z', 92)]

score=sorted(score, key=lambda x: x[1],reverse=True)
sum=1
for index, v in enumerate(groupby(map(lambda x:x[1],score))):
    tmp = list(v[1])
    for index_,i in enumerate(tmp):
        print sum,score[index_+sum-1][0],i
    sum += len(tmp)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-30 14:05:34 | 显示全部楼层
score = [('A', 80), ('B', 86), ('C', 92), ('D', 87), ('E', 88), ('F', 85),
         ('G', 86), ('H', 89), ('I', 88), ('J', 94), ('K', 94), ('L', 80),
         ('M', 83), ('N', 80), ('O', 88), ('P', 94), ('Q', 82), ('R', 84),
         ('S', 96), ('T', 100), ('U', 82), ('V', 81), ('W', 94), ('X', 81),
         ('Y', 89), ('Z', 92)]
n = 1
L = sorted(score,key=lambda x:x[1],reverse=True)
for i in range(len(L)-1):
    if L[i][1] > L[i+1][1]:
        print(n,L[i])
        n = n + 1
    elif  L[i][1] == L[i+1][1]:
        n = n
        print(n,L[i])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-2 18:49:01 | 显示全部楼层
写出来了:
score = [('A', 80), ('B', 86), ('C', 92), ('D', 87), ('E', 88), ('F', 85),
         ('G', 86), ('H', 89), ('I', 88), ('J', 94), ('K', 94), ('L', 80),
         ('M', 83), ('N', 80), ('O', 88), ('P', 94), ('Q', 82), ('R', 84),
         ('S', 96), ('T', 100), ('U', 82), ('V', 81), ('W', 94), ('X', 81),
         ('Y', 89), ('Z', 92)]

for i in range(0, len(score) - 1):
    k = i
    for j in range(i, len(score)):
        if score[k][1] < score[j][1]:
            k = j
    if k != i:
        temp = score[k]
        score[k] = score[i]
        score[i] = temp

print("%d %c %d" % (1, score[0][0], score[0][1]))
rank = 2
for i in range(1, len(score)):
    if score[i][1] == score[i - 1][1]:
        print("%d %c %d" % (rank, score[i][0], score[i][1]))
    else:
        rank = i + 1
        print("%d %c %d" % (rank, score[i][0], score[i][1]))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-24 00:00:11 | 显示全部楼层

大佬, 能分享下你的学习经验吗,你的解答怎么总是这么强,能不能给我指下怎么学习啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-6 12:38:16 | 显示全部楼层
def fun94(list1):
    score = sorted(list1,key=lambda x:x[1],reverse=True)
    count = 1
    print("{}  {}  {}".format(count,score[0][0],score[0][1]))
    for each in range(1,len(score)):
        if score[each][1] != score[each - 1][1]:
            count += 1
        print("{}  {}  {}".format(count,score[each][0],score[each][1]))






score = [('A', 80), ('B', 86), ('C', 92), ('D', 87), ('E', 88), ('F', 85),
         ('G', 86), ('H', 89), ('I', 88), ('J', 94), ('K', 94), ('L', 80),
         ('M', 83), ('N', 80), ('O', 88), ('P', 94), ('Q', 82), ('R', 84),
         ('S', 96), ('T', 100), ('U', 82), ('V', 81), ('W', 94), ('X', 81),
         ('Y', 89), ('Z', 92)]

print(fun94(score))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 06:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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