啊啊啊啊啊吖

多进程,多线程,以及协程的理解

进程:一个运行的程序(代码)就是一个进程,没有运行的代码叫程序,进程是系统资源分配的最 小单位,进程拥有自己独立的内存空间,所以进程间数据不共享,开销大。 线程: 调度执行的最小单位,也叫执行路径,不能独立存在,依赖进程存在一个进程至少有一个 线程,叫主线程,而多个线程共享内存(数据共享,共享全局变量),从而极大地提高了程序的运行效率。 协程:是一种用户态的轻量级线程,协程的调度完全由用户控制

啊啊啊啊啊吖

2018-11-12

85.7143 1 5
  • 关注作者
  • 收藏

Python 中的可变对象和不可变对象

不可变对象,该对象所指向的内存中的值不能被改变。 当改变某个变量时候,由于其所指的值不能被改变,相当 于把原来的值复制一份后再改变,这会开辟一个新的地址,变量再指向这个新的地址。 可变对象,该对象所指向的内存中的值可以被改变。变量(准确的说是引用)改变后,实际上是其所指的值直接 发生改变,并没有发生复制行为,也没有开辟新的出地址,通俗点说就是原地改变。 Python 中,数值类型(int 和

啊啊啊啊啊吖

2018-11-12

0.0000 0 3
  • 关注作者
  • 收藏

Python 中 yield 的用法

yield 就是保存当前程序执行状态。你用 for 循环的时候,每次取一个元素的时候就会计算一次。用 yield 的函数 叫 generator,和 iterator 一样,它的好处是不用一次计算所有元素,而是用一次算一次,可以节省很多空间。generator 每次计算需要上一次计算结果,所以用 yield,否则一 return,上次计算结果就没了。 1. >>> def createGener

啊啊啊啊啊吖

2018-11-12

0.0000 0 1
  • 关注作者
  • 收藏

生成器、迭代器的区别

迭代器是一个更抽象的概念,任何对象,如果它的类有 next 方法和 iter 方法返回自己本身,对于 string、list、 dict、tuple 等这类容器对象,使用 for 循环遍历是很方便的。在后台 for 语句对容器对象调用 iter()函数,iter() 是 python 的内置函数。iter()会返回一个定义了 next()方法的迭代器对象,它在容器中逐个访问容器内元素,next()

啊啊啊啊啊吖

2018-11-12

384.9983 2 4
  • 关注作者
  • 收藏

Python里的lambda 函数是个啥

ambda 函数是一个可以接收任意多个参数(包括可选参数)并且返回单个表达式值的函数 1、lambda 函数比较轻便,即用即仍,很适合需要完成一项功能,但是此功能只在此一处使用, 连名字都很随意的情况下; 2、匿名函数,一般用来给 filter, map 这样的函数式编程服务; 3、作为回调函数,传递给某些应用,比如消息处理

啊啊啊啊啊吖

2018-11-12

0.0000 0 0
  • 关注作者
  • 收藏

函数hasattr、getattr、setattr的区别

hasattr(object, name)函数: 判断一个对象里面是否有 name 属性或者 name 方法,返回 bool 值,有 name 属性(方法)返回 True, 否则返回 False。 注意:name 要使用引号括起来。 1. class function_demo(object): 2. name = 'demo' 3. def run(self): 4. return "he

啊啊啊啊啊吖

2018-11-12

0.0000 0 3
  • 关注作者
  • 收藏

Python 主要的内置数据类型都有哪些?

内建类型: 布尔类型 数字 字符串 列表 元组 字典 集合; 输出字符串‘a’的内建方法: print(list(map(lambda x: x * x, [y for y in range(3)])))的输出?

啊啊啊啊啊吖

2018-11-12

0.0000 0 1
  • 关注作者
  • 收藏

map 函数和 reduce 函数

①从参数方面来讲: map()包含两个参数,第一个参数是一个函数,第二个是序列(列表 或元组)。其中,函数(即 map 的第一个参数位置的函数)可以接收一个或多个参数。 reduce()第一个参数是函数,第二个是序列(列表或元组)。但是,其函数必须接收两个参数。 ②从对传进去的数值作用来讲: map()是将传入的函数依次作用到序列的每个元素,每个元素都是独自被函数“作用”一次 。 reduc

啊啊啊啊啊吖

2018-11-12

0.0000 0 4
  • 关注作者
  • 收藏

基础的数据结构有哪些

基本的算法有: 排序算法(冒泡排序,插入排序, 快速排序, 归并排序), 查找(二分查找),搜索 ((DFS)深度优先搜索,(BFS)广度优先搜索),(Dijkstra 算法),动态规划算法,分类(朴素贝 叶斯分类算法等)。 评价算法的好坏一般有两种: 时间复杂度和空间复杂度。 时间复杂度:同样的输入规模(问题规模)花费多少时间。 空间复杂度:同样的输入规模花费多少空间(主要是内存)。 以

啊啊啊啊啊吖

2018-11-11

0.0000 0 2
  • 关注作者
  • 收藏

算法的特征有哪些

1)有穷性: 一个算法必须保证执行有限步骤之后结束; 2)确切性: 算法的每一步骤必须有确切的定义; 3)输入:一个算法有 0 个或多个输入,以刻画运算对象的初始情况,所谓 0 个输入是指算法本 身给出了初始条件; 4)输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无 意义的; 5)可行性: 算法原则上能够精确地运行,而且人们用笔和纸做有限次数运算后即可完

啊啊啊啊啊吖

2018-11-11

0.0000 0 3
  • 关注作者
  • 收藏

Python 是强语言类型还是弱语言类型

Python 是强类型的动态脚本语言。 强类型:不允许不同类型相加。 动态:不使用显示数据类型声明,且确定一个变量的类型是在第一次给它赋值的时候。 脚本语言:一般也是解释型语言,运行代码只需要一个解释器,不需要编译。

啊啊啊啊啊吖

2018-11-11

0.0000 0 3
  • 关注作者
  • 收藏

Python 中的 os 模块

os.remove()删除文件 os.rename()重命名文件 os.walk()生成目录树下的所有文件名 os.chdir()改变目录 os.mkdir/makedirs 创建目录/多层目录 os.rmdir/removedirs 删除目录/多层目录 os.listdir()列出指定目录的文件 os.getcwd()取得当前工作目录 os.chmod()改变目录权限

啊啊啊啊啊吖

2018-11-11

0.0000 0 4
  • 关注作者
  • 收藏

Python 里面如何生成随机数

在 Python 中用于生成随机数的模块是 random,在使用前需要 import. 如下例子可以酌情列 举: random.random():生成一个 0-1 之间的随机浮点数; random.uniform(a, b):生成[a,b]之间的浮点数; random.randint(a, b):生成[a,b]之间的整数; random.randrange(a, b, step):在指定的

啊啊啊啊啊吖

2018-11-11

0.0000 0 1
  • 关注作者
  • 收藏

常用的 Python 标准库都有哪些

os 操作系统,time 时间,random 随机,pymysql 连接数据库,threading 线程,multiprocessing 进程,queue 队列。 第三方库: django 和 flask 也是第三方库,requests,virtualenv,selenium,scrapy,xadmin,celery, re,hashlib,md5。 常用的科学计算库(如 Numpy,Sci

啊啊啊啊啊吖

2018-11-11

0.0000 0 3
  • 关注作者
  • 收藏

4G内存怎么读取一个5G的数据

方法一: 可以通过生成器,分多次读取,每次读取数量相对少的数据(比如 500MB)进行处理,处理结束后 在读取后面的 500MB 的数据。 方法二: 可以通过 linux 命令 split 切割成小文件,然后再对数据进行处理,此方法效率比较高。可以按照行 数切割,可以按照文件大小切割。

啊啊啊啊啊吖

2018-11-11

0.0000 0 4
  • 关注作者
  • 收藏

range 和 xrange 的区别

两者用法相同,不同的是 range 返回的结果是一个列表,而 xrange 的结果是一个生成器,前者是 直接开辟一块内存空间来保存列表,后者是边循环边使用,只有使用时才会开辟内存空间,所以当列表 很长时,使用 xrange 性能要比 range 好

啊啊啊啊啊吖

2018-11-11

0.0000 0 2
  • 关注作者
  • 收藏

Python里的赋值技巧

a=1,b=2,不用中间变量交换 a 和 b 的值? 方法一: a = a b b = a-b a = a-b 方法二: a = a^b b =b^a a = a^b 方法三: a,b = b,a

啊啊啊啊啊吖

2018-11-11

0.0000 0 1
  • 关注作者
  • 收藏

scrapy框架运行的机制

从 start_urls 里获取第一批 url 并发送请求,请求由引擎交给调度器入请求队列,获取完毕后,调度 器将请求队列里的请求交给下载器去获取请求对应的响应资源,并将响应交给自己编写的解析方法做提 取处理: 1. 如果提取出需要的数据,则交给管道文件处理; 2. 如果提取出 url,则继续执行之前的步骤(发送 url 请求,并由引擎将请求交给调度器入队列...), 直到请求队列里没有请求,程

啊啊啊啊啊吖

2018-11-11

0.0000 0 4
  • 关注作者
  • 收藏

字符串在Python里的操作

字符串可以用单引号或者双引号标注分隔出来(但引号需要配对,即单引号对单引号,双 引号对双引号): single_quoted_string = 'data science' double_quoted_string = "data science" Python 用反斜线来为特殊字符编码。比如: tab_string = "\t" # 表示tab字符 len(tab_string) # 是1

啊啊啊啊啊吖

2018-11-09

0.0000 0 4
  • 关注作者
  • 收藏

Python里的矩阵

矩阵是一个二维的数据集合。 我们将矩阵表示为列表的列表,每个内部列表的大小都一 样,表示矩阵的一行。如果 A 是一个矩阵,那么 A[i][j] 就表示第 i 行第 j 列的元素。按照 数学表达的惯例,我们通常用大写字母表示矩阵。例如: A = [[1, 2, 3], # A有2行3列 [4, 5, 6]] B = [[1, 2], # B有3行2列 [3, 4], [5, 6]] 在数学中,矩阵的

啊啊啊啊啊吖

2018-11-09

0.0000 0 1
  • 关注作者
  • 收藏
<149505162>