求助,如何将数据类型转换成指定的?

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

回到顶部