首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Python-VBA编程500例-004(入门级)

  • 25-03-03 08:01
  • 4410
  • 8254
blog.csdn.net

目录

1、相对排名:

1-1、Python:

1-2、VBA:

2、相关文章:

个人主页:https://blog.csdn.net/ygb_1024?spm=1010.2135.3001.5421

欢迎志同道合者一起交流学习,我的QQ:94509325/微信号

        相对排名(Relative Ranking)在现实中有很多应用,主要包括:

1、体育比赛排名:在体育比赛中,相对排名常常用于确定参赛队伍的表现和排名。例如,在足球比赛中,球队的相对排名可以根据每个球队的胜利场次、得分、失球等指标来确定。

2、学术排名:在学术领域,相对排名可以用于评估学校、学院、专业和教师的表现和声誉。例如,世界大学排名根据学校在学术研究、教育质量、国际化水平等方面的表现进行排名。

3、职业排名:在就业市场中,相对排名常常用于评估和比较不同职业的就业前景和薪酬水平。例如,根据薪酬、职业需求和工作满意度等指标,可以对不同职业进行相对排名。

4、商业排名:在商业领域,相对排名常常用于评估公司、品牌和产品的市场地位和声誉。例如,根据市场份额、营收、客户满意度等指标,可以对不同公司和品牌进行相对排名。

5、政府排名:在政府领域,相对排名可以用于评估政府机关和政府官员的绩效和公信力。例如,根据政府的治理能力、反腐败程度和公共服务水平等指标,可以对不同政府进行相对排名。

这些都是相对排名在现实中的一些应用,通过相对排名可以对不同实体进行比较和评估,从而帮助做出决策和制定策略。

1、相对排名:
1-1、Python:
  1. # 1.问题描述
  2. # 根据N名运动员的得分,找到相对等级和获得最高分前3名的人,分别获得金牌、银牌和铜牌;所有运动员的成绩都保证是独一无二的.
  3. # 2.问题示例:
  4. # 输入[6,3,7,2,1],输出["Silver Medal","Bronze Medal","Gold Medal","4","5"].
  5. # 3.代码实现:
  6. class Solution:
  7. # 参数nums: 整数列表
  8. # 返回值: 排序列表
  9. def findRelativeRanks(self, nums):
  10. # {}用于表示字典(dictionary),字典是一种无序的、可变的、可索引的数据结构,它由键值对组成.
  11. # []用于表示列表(list),列表是一种有序的、可变的、可索引的数据结构,它可以包含任意类型的元素.
  12. # ()用于表示元组(tuple),元组是一种有序的、不可变的、可索引的数据结构,它可以包含任意类型的元素.
  13. score = {}
  14. for i in range(len(nums)):
  15. score[nums[i]] = i
  16. sortedscore = sorted(nums, reverse=True)
  17. answer = [0] * len(nums) # 根据nums的长度,预留列表answer的元素占位数,即根据nums的长度,对列表answer进行初始化
  18. for i in range(len(sortedscore)):
  19. res = str(i + 1)
  20. if i == 0:
  21. res = 'Gold Medal'
  22. if i == 1:
  23. res = 'Silver Medal'
  24. if i == 2:
  25. res = 'Bronze Medal'
  26. answer[score[sortedscore[i]]] = res
  27. return answer
  28. # 主函数
  29. if __name__ == '__main__':
  30. num = [6, 3, 7, 2, 1]
  31. s = Solution()
  32. print("输入:", num)
  33. print("输出:", s.findRelativeRanks(num))
  34. # 4.运行结果:
  35. # 输入: [6, 3, 7, 2, 1]
  36. # 输出: ['Silver Medal', 'Bronze Medal', 'Gold Medal', '4', '5']
1-2、VBA:
  1. Rem 自定义函数findRelativeRanks,功能:实现相对排名
  2. Function findRelativeRanks(nums As Variant) As Variant
  3. Dim score As New Scripting.Dictionary '此处需要引用控件:Microsoft Scripting Runtime,即对应系统路径下的动态库:C:\Windows\SysWOW64\scrrun.dll
  4. Dim sortedscore As Variant
  5. Dim answer As Variant
  6. Dim i As Integer
  7. Dim res As String
  8. For i = LBound(nums) To UBound(nums)
  9. score.Add nums(i), i
  10. Next i
  11. sortedscore = SortDesc(nums)
  12. ReDim answer(LBound(nums) To UBound(nums))
  13. For i = LBound(sortedscore) To UBound(sortedscore)
  14. res = CStr(i + 1)
  15. If i = LBound(sortedscore) Then
  16. res = "Gold Medal"
  17. ElseIf i = LBound(sortedscore) + 1 Then
  18. res = "Silver Medal"
  19. ElseIf i = LBound(sortedscore) + 2 Then
  20. res = "Bronze Medal"
  21. End If
  22. answer(score(sortedscore(i))) = res
  23. Next i
  24. findRelativeRanks = answer
  25. End Function
  26. rem 自定义函数SortDesc,功能:实现数组的降序排列
  27. Function SortDesc(arr As Variant) As Variant
  28. Dim i As Integer, j As Integer
  29. Dim temp As Integer
  30. For i = LBound(arr) To UBound(arr)
  31. For j = i + 1 To UBound(arr)
  32. If arr(i) < arr(j) Then
  33. temp = arr(i)
  34. arr(i) = arr(j)
  35. arr(j) = temp
  36. End If
  37. Next j
  38. Next i
  39. SortDesc = arr
  40. End Function
  41. Rem 执行过程,功能:调用自定义函数findRelativeRanks,并在立即窗口中输出结果
  42. Sub TestRun()
  43. Dim num As Variant
  44. Dim result As Variant
  45. num = Array(6, 3, 7, 2, 1)
  46. result = findRelativeRanks(num)
  47. Debug.Print "输入: "; Join(num, ",")
  48. Debug.Print "输出: "; Join(result, ",")
  49. End Sub
  50. '输入: 7,6,3,2,1
  51. '输出: Silver Medal,Bronze Medal,Gold Medal,4,5

注意:1-2中的代码需粘贴到你的VBA编辑器中,按F5执行TestRun程序,结果会展示在立即窗口中。

2、相关文章:

2-1、Python-VBA编程500例-002(入门级)

2-2、Python-VBA编程500例-003(入门级)

2-3、Python-VBA编程500例-005-01(入门级) 

2-4、Python-VBA编程500例-005-02(入门级)

Python算法之旅:http://iyenn.com/rec/1699032.html?spm=1001.2014.3001.5502 

个人主页:https://blog.csdn.net/ygb_1024?spm=1010.2135.3001.5421
欢迎志同道合者一起交流学习,我的QQ:94509325/微信号:

文章知识点与官方知识档案匹配,可进一步学习相关知识
算法技能树首页概览60120 人正在系统学习中
遨游码海,我心飞扬
微信名片
注:本文转载自blog.csdn.net的神奇夜光杯的文章"https://blog.csdn.net/ygb_1024/article/details/136692320"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top