网易互娱笔试题:社交软件好友状态排序

  • 首先是字典排序的过程,如下所示:使用lambda函数并用元祖可以指定排序优先级,乘以负号代表按由大到小排序,否则按由小到大排序。
member['a']=[2,3]
member['b']=[2,3]
member['c']=[3,1]
member['d']=[2,4]
c=sorted(member.items(), key=lambda x:(-1*x[1][0],-1*x[1][1],-1*x[0]))
  • 然后记录每位成员及其在线状态,按照value以及key的优先级排序:
member={}
a = int(sys.stdin.readline().strip())
for i in range(a):
    # 读取每一行
    inputLine = input()
    listLine = inputLine.split(' ')
    # 把每一行的数字分隔后转化成int列表
    member[listLine[1]]=[0,int(listLine[0])]
n = int(sys.stdin.readline().strip())
for i in range(n):
    inputLine=input()
    listLine=inputLine.split(' ')
    member[listLine[0]][0]=int(listLine[1])
print(member)
c=sorted(member.items(), key=lambda x:(x[1][0],-1*x[1][1],-1*x[0]))
for i in range(4):
    print(c[i][0])

你可能感兴趣的:(python)