-
已知一个数字列表,统计偶数的个数
[10, 34, 5, 65, 66, 89, 82]
结果: 4
count = 0 nums = [10, 34, 5, 65, 66, 89, 82] for x in nums: if x % 2 == 0: count += 1 print('偶数的个数:', count) # 偶数的个数: 4 new_nums = [x for x in nums if x % 2 == 0] print('偶数的个数:', len(new_nums)) #4 -
已知一个数字列表,计算所有元素的平均值
[23, 34, 56, 9, 80]
nums = [23, 34, 56, 9, 80] print('所有元素的平均值:', sum(nums)/len(nums)) # 所有元素的平均值: 40.4 -
已知一个列表,统计列表中整数的个数
[‘abc’, True, 12.5, 20, ‘hello’, 10]
结果:2
count = 0 lists = ['abc', True, 12.5, 20, 'hello', 10] for x in lists: if type(x) == int: count += 1 print('整数的个数:', count) # 整数的个数: 2 -
已知一个列表,统计列表中非整数的个数
[‘abc’, True, 12.5, 20, ‘hello’, 10]
结果:4
count = 0 lists = ['abc', True, 12.5, 20, 'hello', 10] for x in lists: if type(x) != int: count += 1 print('非整数的个数:', count) # 非整数的个数: 4 -
已知一个列表,计算列表中所有数字的和
[‘abc’, True, 12.5, 20, ‘hello’, 10]
结果: 42.5
lists = ['abc', True, 12.5, 20, 'hello', 10] sum1 = 0 for x in lists: if type(x)==int or type(x)==float: sum1 += x print('所有数字的和:', sum1) # 42.5 -
已知一个列表,计算所有大于100的数的和
[‘abc’, 23, 101, 12,5, ‘hello’, 120.8]
结果:221.8
lists = ['abc', 23, 101, 12,5, 'hello', 120.8] sum2 = 0 for x in lists: if (type(x)==int or type(x)==float) and x >100: sum2 += x print(sum2) # 221.8 -
已知一个列表,提取列表中所有字符串元素的最后一个字符。
[‘hello’, ‘how’, 10, ‘are’, 12.5, True]
结果: [‘0’, ‘w’, ‘e’]
new_lists = [] lists = ['hello', 'how', 10, 'are', 12.5, True] for x in lists: if type(x) == str: new_lists += x[-1] print(new_lists) # ['o', 'w', 'e'] -
根据要求完成以下功能:
已知变量orders中保存一个店家的所有订单数据,每个订单包含:订单ID、用户ID、订单金额、支付金额、订单来源渠道、是否退货
orders = [ {'orderID': '254118088', 'userID': '157213', 'goodsID': 'PR000064', 'orderAmount': '272.51', 'payment': '272.51 ', 'chanelID': None, 'chargeback': False}, {'orderID': '263312190', 'userID': '191121', 'goodsID': 'PR000583', 'orderAmount': '337.93', 'payment': '337.93 ', 'chanelID': '渠道-0765', 'chargeback': True}, {'orderID': '188208169', 'userID': '211918', 'goodsID': 'PR000082', 'orderAmount': '905.68', 'payment': '891.23 ', 'chanelID': '渠道-0530', 'chargeback': False}, {'orderID': '203314910', 'userID': '201322', 'goodsID': 'PR000302', 'orderAmount': '786.27', 'payment': '688.88 ', 'chanelID': None, 'chargeback': False}, {'orderID': '283989279', 'userID': '120872', 'goodsID': 'PR000290', 'orderAmount': '550.77', 'payment': '542.51 ', 'chanelID': '渠道-9527', 'chargeback': False}, {'orderID': '279103297', 'userID': '146548', 'goodsID': 'PR000564', 'orderAmount': '425.2', 'payment': '425.20 ', 'chanelID': '渠道-0765', 'chargeback': False}, {'orderID': '316686066', 'userID': '148994', 'goodsID': 'PR000709', 'orderAmount': '1764.37', 'payment': '1707.04 ', 'chanelID': '渠道-0396', 'chargeback': False}, {'orderID': '306447069', 'userID': '104863', 'goodsID': 'PR000499', 'orderAmount': '499.41', 'payment': '480.42 ', 'chanelID': '渠道-0007', 'chargeback': False}, {'orderID': '290267674', 'userID': '206155', 'goodsID': 'PR000253', 'orderAmount': '1103', 'payment': '1050.95 ', 'chanelID': '渠道-0330', 'chargeback': False}, {'orderID': '337079027', 'userID': '211918', 'goodsID': 'PR000768', 'orderAmount': '465.41', 'payment': '465.41 ', 'chanelID': '渠道-9527', 'chargeback': False}, {'orderID': '417411381', 'userID': '148994', 'goodsID': 'PR000483', 'orderAmount': '279.53', 'payment': '279.53 ', 'chanelID': '渠道-0007', 'chargeback': False}, {'orderID': '254286596', 'userID': '174586', 'goodsID': 'PR000322', 'orderAmount': '622.7', 'payment': '622.70 ', 'chanelID': '渠道-0283', 'chargeback': False}, {'orderID': '303647260', 'userID': '178023', 'goodsID': 'PR000685', 'orderAmount': '969.61', 'payment': '913.58 ', 'chanelID': '渠道-0765', 'chargeback': False}, {'orderID': '347419495', 'userID': '209896', 'goodsID': 'PR000483', 'orderAmount': '279.18', 'payment': '225.15 ', 'chanelID': '渠道-0396', 'chargeback': False}, {'orderID': '384544993', 'userID': '148994', 'goodsID': 'PR000004', 'orderAmount': '3424.78', 'payment': '3424.78 ', 'chanelID': '渠道-0530', 'chargeback': False}, {'orderID': '322802617', 'userID': '125220', 'goodsID': 'PR000812', 'orderAmount': '430.69', 'payment': '4223.48 ', 'chanelID': '渠道-0530', 'chargeback': False}, {'orderID': '399101394', 'userID': '183645', 'goodsID': 'PR000025', 'orderAmount': '703.39', 'payment': '553.37 ', 'chanelID': '渠道-9527', 'chargeback': False}, {'orderID': '274413321', 'userID': '162256', 'goodsID': 'PR000813', 'orderAmount': '227.42', 'payment': '200.37 ', 'chanelID': '渠道-0530', 'chargeback': False}, {'orderID': '362677803', 'userID': '217238', 'goodsID': 'PR000400', 'orderAmount': '169.04', 'payment': '106.99 ', 'chanelID': '渠道-0789', 'chargeback': True} ]-
(数据清洗)删除orders中支付金额大于订单金额的订单
for x in orders: if float(x['payment']) > float(x['orderAmount']): orders.remove(x) print(orders) -
计算这个店家的总订单金额和总支付金额以及**实际销售额(店家真正拿到手中钱)
sum_orderAmount = 0 sum_payment = 0 for x in orders: sum_orderAmount += float(x['orderAmount']) sum_payment += float(x['payment']) print('总订单金额和总支付金额:', sum_orderAmount,sum_payment,sum_payment - sum_orderAmount) -
统计这个店家的订单的订单来源渠道的数量
new_count1 = [] new_count = [x['chanelID'] for x in orders if x['chanelID'] != None] for y in new_count: if y not in new_count1: new_count1.append(y) print('订单的订单来源渠道的数量:', new_count1, len(new_count1)) -
计算订单退货率
sum1 = 0 count = 0 for x in orders: sum1 += 1 if x['chargeback'] == True: count += 1 print('计算订单退货率:', count/sum1) -
获取最优广告渠道(**不对)
new_count = [x['chanelID'] for x in orders if x['chanelID'] != None] new_count1 = [] for x in set(new_count): new_count1.append([x, new_count1.count(x)]) max1 = new_count1[0] for y in new_count1[:]: print(y) if new_count1[1] > max1[1]: max1 = y print('最优广告渠道:', max1) -
将订单渠道为None的订单的渠道值修改成最优广告渠道
for x in orders: if x['chanelID'] == None: x['chanelID'] = '渠道-0530' print(orders) -
在每个订单数据中添加一个键值对保存订单的折扣值
for x in orders: x.setdefault('discount', float(x['payment'])/float(x['orderAmount'])) print(orders)
-
day8-字典和集合作业
最新推荐文章于 2025-12-11 20:49:41 发布
本文介绍了如何对订单数据进行清洗,删除支付金额大于订单金额的订单,计算总订单金额、总支付金额及实际销售额,统计订单来源渠道数量,评估订单退货率,并确定最优广告渠道。同时,更新了订单渠道缺失值,并计算每个订单的折扣值。
875

被折叠的 条评论
为什么被折叠?



