Python itertools 简单介绍和运用例
最近写 Python 比较多,不可避免地要处理一堆可迭代对象,发现 Python 对于**迭代器/生成器** 的支持相较于其它语言来说是更为丰富的,所以简单记录一下 `itertools` 这个内置包中几个常见的函数。 文末附一个实例,是一个关于扫雷的算法,用到了文中提到的一些函数。注意,我知道它们并**不是真正的函数**,而是以类的形式定义。为了方便起见,本文就把它们当成函...
51工具盒子
最近写 Python 比较多,不可避免地要处理一堆可迭代对象,发现 Python 对于**迭代器/生成器** 的支持相较于其它语言来说是更为丰富的,所以简单记录一下 `itertools` 这个内置包中几个常见的函数。 文末附一个实例,是一个关于扫雷的算法,用到了文中提到的一些函数。注意,我知道它们并**不是真正的函数**,而是以类的形式定义。为了方便起见,本文就把它们当成函...
<p>本文讨论的主要是,如何把工厂模式生产的产品,即抽象类的子类信息<strong>动态地保存到一个表中</strong> ,而不是直接简单粗暴地使用 <code>if-else</code> 来判断。可能是 Java 给我的影响比较大,我还比较喜欢用抽象类抽象方法这些东西,至于好坏应该由实际情况来决定,这里就不详细展...
源码: [python-diango-web: Python3.8+Django+MySQL实现的Python Web版学生增删改查,旨在快速入门Python Web开发,欢迎star学习交流 (gitee.com)](https://gitee.com/wang-huamao/python-diango-web) 下载后 配置pycharm: 实现Win[更新暂停工具](https://51tbox.com/ "查看所有文章关于 更新暂停工具")。 软件截图 ---- 实现[局域网文件传输](https://51tbox.com/ "查看所有文章关于 局域网文件传输")软件的截图功能介绍,包括选择[共享文件夹](https://51tbox.com/ "查看所有文章关于 共享文件夹&q...
<h3>一、基本概念 {#一、基本概念}</h3> <p>Python 是一种面向对象的、动态的解释型编程语言,无需编译即可执行,相比于 C++、Java 等高级语言更加轻量化。Python 追求和遵循极简、优雅主义,编码风格受 Linux、C 语言影响较深,官方编程规范中比较推荐使用 小写字母+下划线 来给标识符命名。</p> ...
> CUDA编程中内存分为主机内存(内存条)与设备内存(显存),为提高计算效率,需要设计程序降低内存的数据搬运,或使用快速的内存寄存数据。 ### 共享内存 {#共享内存} > CPU和GPU组成异构计算架构,如果想从内存上优化程序,我们必须尽量减少主机与GPU设备间的数据拷贝,并将更多计算从主机端转移到GPU设备端,我们要尽量在设备端初始化数据,并计算中间数据...
<blockquote> <p>之前讨论的并行,都是线程级别的,即CUDA开启多个线程,并行执行核函数内的代码。GPU最多就上千个核心,同一时间只能并行执行上千个任务。当我们处理千万级别的数据,整个大任务无法被GPU一次执行,所有的计算任务需要放在一个队列中,排队顺序执行。CUDA将放入队列顺序执行的一系列操作称为流(Stream)。</p>...
> 本文介绍GPU编程的一些重要概念。 ### GPU编程 {#GPU编程} > GPU编程与CPU编程的思考角度不尽相同,举皮皮鲁老师的一个例子: 以加法计算为例,CPU就像大学数学教授,GPU就像几千个小学生,现在需要不借助外界,只通过纸笔,对2000个数字进行加法计算,得到1000个加法结果,在这个过程中,大学教授要协调指挥小学生完成任务。 在计算过程...
<blockquote> <p>在程序运行过程中,可能遇到需要进程间或不同平台的语言之间进行信息交互,存在硬盘是一种解决方案但是速度太慢。python的mmap库提供了共享内存的实践方案可以完成信息在内存间交互。</p> </blockquote> <h3>简介 {#简介}</h3> <h4>共...