求助,如何将数据类型转换成指定的?
data = [ ('连衣裙', '白色', 'S', 1),
('连衣裙', '白色', 'S', 1),
('连衣裙', '黑色', 'M', 1),
('裤子', '白色', 'S', 1),
]
result = [
('连衣裙', '白色', 'S', 2, 3),
('连衣裙', '白色', 'M', 1, 3),
('裤子', '白色', 'S', 1, 1),
]
求助大佬如何将data的数据转换成result这种,效果就是统计标题相同的颜色尺码数量,最后一个是总计,并以从高到低排序, 举例只有少量数据,实际数据有几千个
回答:
参考一下这个实现吧
from collections import Counter
data = [
('连衣裙', '白色', 'S', 1),
('连衣裙', '白色', 'S', 1),
('连衣裙', '黑色', 'M', 1),
('裤子', '白色', 'S', 1),
]
# 计算每个 (标题, 颜色, 尺码) 的数量
counter = Counter(tuple(x[:-1]) for x in data)
# 计算每个标题的总数
title_counts = Counter(x[0] for x in data)
# 构建结果列表
result = [(key[0], key[1], key[2], count, title_counts[key[0]]) for key, count in counter.items()]
# 根据总数从高到低排序
result.sort(key=lambda x: (-x[4], x[0], x[1], x[2]))
print(result)
输出:
[ ('连衣裙', '白色', 'S', 2, 3), ('连衣裙', '黑色', 'M', 1, 3), ('裤子', '白色', 'S', 1, 1),]
以上是 求助,如何将数据类型转换成指定的? 的全部内容, 来源链接: utcz.com/p/938841.html