《python编程从入门到实践》示例16.2.6代码块分析

本文代码贴出代码都是python3代码块正文import pygalfrom itertools import groupbydef draw_line(x_data,y_data,title,y_legend): xy_map = [] for x,y in groupby(sorted(zip(x_data,y_data)),key=lambda _: _[0]): y_list = [v for _, v in y] xy_map.appen
摘要由CSDN通过智能技术生成

本文代码贴出代码都是python3

代码块正文

import pygal
from itertools import groupby

def draw_line(x_data,y_data,title,y_legend):
    xy_map = []
    for x,y in groupby(sorted(zip(x_data,y_data)),key=lambda _: _[0]):
        y_list  = [v for _, v in y]
        xy_map.append([x, sum(y_list)/ len(y_list)])
    x_unique,y_mean = [*zip(*xy_map)]
    line_chart = pygal.Line()
    line_chart.title= title
    line_chart.x_labels=x_unique
    line_chart.add(y_legend,y_mean)
    line_chart.render_to_file(title+'.svg')
    return line_chart

分析

本文只对其中的代码块部分进行分析,由于是部分代码,就不对整体设计思路进行阐释,详情见书(太简单了 自己看)。
主要对此部分代码进行阐释。

for x,y in groupby(sorted(zip(x_data,y_data)),key=lambda _: _[0]):
	y_list  = [v for _, v in y]

zip函数理解

这里放出我探究代码

x_data = [1,1,1,1,1,2,2,2,2,2]
y_data = [1,2,
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值