A26007. 碳中和行动2025年,全球碳中和行动进入关键阶段。某环保机构收集了多个绿色能源项目的效率数据(单位:%),需通过算法对项目效率进行排序,优先推广高效项目。要求:实现选择排序算法,按效率值(第二列)对项目列表进行降序排序,输出排序后的项目名称和效率值。已知数据如下:projects = [ ["风电-青海", 82.5], ["光伏-宁夏", 78.3], ["氢能-广东", 91.2], ["地…
填空题
中等
知识点
题目描述
碳中和行动
2025年,全球碳中和行动进入关键阶段。某环保机构收集了多个绿色能源项目的效率数据(单位:%),需通过算法对项目效率进行排序,优先推广高效项目。
要求:实现选择排序算法,按效率值(第二列)对项目列表进行降序排序,输出排序后的项目名称和效率值。
已知数据如下:
projects = [
["风电-青海", 82.5], ["光伏-宁夏", 78.3], ["氢能-广东", 91.2],
["地热-西藏", 65.7], ["潮汐-浙江", 88.4]
]
结果输出示例:
第1名:氢能-广东(效率91.2%)
第2名:潮汐-浙江(效率88.4%)
...
请补全下列代码中的①②③④⑤⑥四处。
projects = [
["风电-青海", 82.5], ["光伏-宁夏", 78.3], ["氢能-广东", 91.2],
["地热-西藏", 65.7], ["潮汐-浙江", 88.4]
]
# 选择排序(降序)
for i in range(len(projects)):
k = _____①_____
for j in range(i + 1, len(projects)):
if projects[j][1] > projects[k][1]: # 比较效率值 k = _____②_____
# 交换位置
projects[i], projects[k] = _____③_____ , _____④_____
# 输出结果
for idx, project in enumerate(projects):
print(f"第{_____⑤_____ }名:{project[0]}(效率{_____⑥_____}%)")参考答案
projects = [
["风电-青海", 82.5], ["光伏-宁夏", 78.3], ["氢能-广东", 91.2],
["地热-西藏", 65.7], ["潮汐-浙江", 88.4]
]
# 选择排序(降序)
for i in range(len(projects)):
k = i
for j in range(i + 1, len(projects)):
if projects[j][1] > projects[k][1]:
k = j
projects[i], projects[k] = projects[k], projects[i]
# 输出结果
for idx, project in enumerate(projects):
print(f"第{idx+1}名:{project[0]}(效率{project[1]}%)")
说明:
① i
② j
③ ④ projects[k], projects[i] 解析:将当前最大值交换到未排序部分的起始位置。
⑤idx+1 解析:第一个索引号为0。
⑥project[1] 解析:按格式输出项目名称和效率值答案解析
评分标准:
(1)i(或等效答案);(2分)
(2)j(或等效答案);(4分)
(3)projects[k](或等效答案);(2分)
(4)projects[i](或等效答案);(2分)
(5)idx+1(或等效答案);(3分)
(6)project[1](或等效答案)。(3分)
上一题
下一题