s列表中存放了一组职工津贴记录,每条记录包含工号、津贴1、津贴2三项数据,应用
设置 插入排序对这组数据排序,本月津贴数计算方法为工号为偶数的发津贴1和津贴2,工号
为奇数的只发津贴1,请按本月津贴数从高到低排序。请完整划线部分的语句,使程序可以正确运行。

s列表中存放了一组职工津贴记录,每条记录包含工号、津贴1、津贴2三项数据,应用
设置 插入排序对这组数据排序,本月津贴数计算方法为工号为偶数的发津贴1和津贴2,工号
为奇数的只发津贴1,请按本月津贴数从高到低排序。请完整划线部分的语句,使程序可以正确运行。

假设列表s中的每个元素都是一个包含三个元素的列表,格式为[工号, 津贴1, 津贴2]。一下是假如,它实现了上述逻辑
def calculate_allowance(record):
# 工号为偶数时,返回津贴1和津贴2的和;工号为奇数时,只返回津贴1。
if record[0] % 2 == 0:
return record[1] + record[2]
else:
return record[1]
def insertion_sort(s):
# 对列表s按照本月津贴数进行插入排序
for i in range(1, len(s)):
key = s[i]
j = i - 1
# 比较本月津贴数,如果前面的津贴数小于key的津贴数,就将前面的数据项向后移动
while j >= 0 and calculate_allowance(s[j]) < calculate_allowance(key):
s[j + 1] = s[j]
j -= 1
# 将key放到正确的位置
s[j + 1] = key
# 示例数据
s = [[1, 100, 50], [2, 120, 30], [3, 110, 40], [4, 130, 20]]
# 排序
insertion_sort(s)
# 打印排序后的列表
print(s)