1、明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据,希望大家能正确处理)。
while True:try:n=int(input()) #读入一个int型:随机整数的个数mySet=set()for i in range(n):mySet.add(int(input())) #每次运行到input()时都会唤起等待用户输入#列输出:for i in sorted(mySet):print(i)#行输出:print(sorted(mySet))except:break
2、对奖牌榜就行排序,数据里面包含了15个国家的金、银、铜数据,使用 \n 作为分隔符:
s = "德国 10 11 16\n意大利 10 10 20\n荷兰 10 12 14\n法国 10 12 11\n英国 22 21 22\n中国 38 32 18\n日本 27 14 17\n美国 39 41 33\n俄罗斯奥委会 20 28 23\n澳大利亚 17 7 22\n匈牙利 6 7 7\n加拿大 7 6 11\n古巴 7 3 5\n巴西 7 6 8\n新西兰 7 6 7"stodata = s.split('\n',-1)# 使用sortedpara = {}for line in range(len(stodata)):# 每一行数据data = stodata[line].split(' ')print(data)# 组装数据结构para={'China': [], 'Russia': []}para[data[0]] = [int('-' + i) for i in data[1:]]# 开始排序(x[1]代表奖牌数目, x[0]代表国家)new_para = sorted(para.items(), key=lambda x: (x[1], x[0]))print()c=[]for i in new_para:c.append((i[0]))for j in range(15):print(f"{(j+1):2d} {c[j]}")
输出结果为:
['德国', '10', '11', '16']['意大利', '10', '10', '20']['荷兰', '10', '12', '14']['法国', '10', '12', '11']['英国', '22', '21', '22']['中国', '38', '32', '18']['日本', '27', '14', '17']['美国', '39', '41', '33']['俄罗斯奥委会', '20', '28', '23']['澳大利亚', '17', '7', '22']['匈牙利', '6', '7', '7']['加拿大', '7', '6', '11']['古巴', '7', '3', '5']['巴西', '7', '6', '8']['新西兰', '7', '6', '7']1 美国2 中国3 日本4 英国5 俄罗斯奥委会6 澳大利亚7 荷兰8 法国9 德国10 意大利11 加拿大12 巴西13 新西兰14 古巴15 匈牙利
