【华为机试真题8 Python实现】【按身高和体重排队】

"""
题目描述:
某学校举行运动会,学生们按编号(1,2,3,4,5。。。n)进行标识,现在需要按照身高由低到高排列,对身高相同的人,按体重由轻到重排序,
对于身高体重都相同的人,维持原有的编号顺序关系,请输出排列后的学生编号。
输入描述:
两个序列,每个序列由n个正数组成,第一个序列中的数值代表身高,第二个序列中的数值代表体重,
输出描述:
排列结果,每个数值都是原始序列中学生的编号,编号从1开始
示例:
4
100 100 120 130
40 30 60 50
输出:
2 1 3 4
"""
# num = int(input())
# height = list(map(int, input().split(' ')))
# weight = list(map(int, input().split(' ')))
# dict1 = []
# for i in range(1, num + 1):
#     dict1.append((i, height[i - 1], weight[i - 1]))
# print(dict1)
# dict1 = sorted(dict1, key=lambda x: (x[1], x[2]))
#
# print(dict1)
# print(' '.join([str(i[0]) for i in dict1]))


num = int(input())
height = list(map(int, input().split(' ')))
weight = list(map(int, input().split(' ')))
dict1 = {}
for i in range(1, num + 1):
    # dict1.append((i, height[i - 1], weight[i - 1]))
    dict1[i] = [height[i - 1], weight[i - 1]]
print(dict1.items())
dict1 = sorted(dict1.items(), key=lambda x: (x[1][0], x[1][1]))
#
print(dict1)
c = []
for i in dict1:
    c.append(i[0])

print(" ".join([str(i) for i in c]))
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值