python抢红包列表对数据操作的练习题

编程入门 行业动态 更新时间:2024-10-26 23:25:11

python抢红包列表对数据操作的<a href=https://www.elefans.com/category/jswz/34/1768594.html style=练习题"/>

python抢红包列表对数据操作的练习题

输入样例

10
3 2 22 10 58 8 125
5 1 345 3 211 5 233 7 13 8 101
1 7 8800
2 1 1000 2 1000
2 4 250 10 320
6 5 11 9 22 8 33 7 44 10 55 4 2
1 3 8800
2 1 23 2 123
1 8 250
4 2 121 4 516 7 112 9 10

输出样例

1 11.63
2 3.63
8 3.63
3 2.11
7 1.69
6 -1.67
9 -2.18
10 -3.26
5 -3.26
4 -12.32

#[
#    [3, 2, 22, 10, 58, 8, 125],
#    [5, 1, 345, 3, 211, 5, 233, 7, 13, 8, 101],
#    [1, 7, 8800],
#    [2, 1, 1000, 2, 1000],
#    [2, 4, 250, 10, 320],
#    [6, 5, 11, 9, 22, 8, 33, 7, 44, 10, 55, 4, 2],
#    [1, 3, 8800],
#    [2, 1, 23, 2, 123],
#    [1, 8, 250]
#]amountOfPeople = int(input())
data = []
#对每个数据使用map进行操作
for i in range(amountOfPeople):data.append(list(map(int,input().split())))#生成一个二维列表
#存放结果的列表 【编号,个数,金额】
#[1, 0, 0]
#[2, 0, 0]
#[3, 0, 0]
#[4, 0, 0]
#[5, 0, 0]
#[6, 0, 0]
#[7, 0, 0]
#[8, 0, 0]
#[9, 0, 0]
#[10, 0, 0]
output = [[0 for row in range(3)] for column in range(amountOfPeople)]
for i in range(amountOfPeople):output[i][0] = i + 1k = 0
for i in data:for j in range(i[0]):#金额相加output[i[j * 2 + 1] - 1][2] += i[j * 2 +2]#发红包扣钱output[k][2] -= i[j * 2 +2]#抢红包个数加1output[i[j * 2 + 1] - 1][1] += 1k += 1
#sorte()根据多个标准进行排序sorte(list,key = lambda s:(s[2],s[1],-s[0]))
#-s[0] 相反 reverse = True 设置为降序
newOutput = sorted(output,key = lambda s:(s[2],s[1],-s[0]),reverse = True)for i in range(amountOfPeople):#print(i)print("{} {:.2f}".format(newOutput[i][0],newOutput[i][2]/100))

更多推荐

python抢红包列表对数据操作的练习题

本文发布于:2023-07-28 20:25:58,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1300355.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:练习题   操作   数据   抢红包   列表

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!