Python
松语编程
公众号:松语编程。致力于分享Java编程技巧,个人思考,校招求职,工作规划,社招跳槽等方面的知识。
展开
-
《疯狂python讲义》笔记:类和对象
文章目录1.类方法@classmethod和静态方法@staticmethod2.@函数装饰器1.类方法@classmethod和静态方法@staticmethod类方法@classmethod:第一个参数cls都会被自动绑定到类本身,无论是类还是对象都可调用。静态方法@staticmethod:无论是类还是对象都可调用,但是不会自动绑定。实例方法:只能通过对象调用,如果通过类进行调用就需...原创 2024-05-31 20:43:58 · 403 阅读 · 1 评论 -
矩阵计算优化
距离矩阵计算给定m × n阶矩阵X,满足X = [x 1 , x 2 , … x n ],这里第i列向量是m维向量。求n × n矩阵D,使得D ij = ||x i - x j || 2通过使用向量和矩阵操作,减少循环来优化运行时间import numpy as npimport numpy.linalg as laimport timeX = np.array([range(0,5...原创 2019-10-03 11:48:36 · 1662 阅读 · 0 评论 -
python OrderedDict 详解
有序字典:OrderedDict 函数实例解释参考:python中OrderedDict的使用import collections'''OrderedDict()建立有序字典'''mydict = collections.OrderedDict()mydict[1]=10mydict[2]=20mydict[3]=30print(mydict) # OrderedDict([(1...转载 2020-02-23 11:15:44 · 5606 阅读 · 0 评论 -
《Effective python》-第2章 函数
15.如何在闭包里使用外围作用域中的变量可参考文章:python的闭包问题def sort_priority(values,group): # 外部作用域"""功能:把在group中的元素排在所有值的前面,若存在group范围内的值,found为True""" found = False def helper(x): # 闭包 if x in group: ...原创 2020-02-18 19:51:07 · 133 阅读 · 0 评论 -
《Effective python》-第1章 pythonic思维
1.查看版本import sysprint(sys.version)# 3.7.5 (default, Oct 31 2019, 15:18:51) [MSC v.1916 64 bit (AMD64)]print(sys.version_info)# sys.version_info(major=3, minor=7, micro=5, releaselevel='final', se...原创 2020-02-17 16:41:56 · 127 阅读 · 0 评论 -
python的闭包问题
ans = []def helper(node): ans.append(1) # ans不存在,会使用全局的ans列表,会修改上面个ans, print(ans) # [1] returnhelper(root)print(ans) # [1]我而不是[]ans = 0def helper(node): ans=1 # 不会修改上面个ans,这里会定义...原创 2020-02-14 10:06:42 · 158 阅读 · 1 评论 -
python的深赋值与浅赋值
原文在python中,对象赋值实际上是对象的的引用,当创建一个对象,然后把它赋值给另外一个变量的时候,python没有拷贝这个对象,而只是拷贝了这个对象的引用,所以就出现了浅复制,即复制后原对象改变后,复制出来的对象也会改变,要防止复制出来的对象改变,就要使用深复制python复制三种方式(1)使用“=”直接赋值,传递对象的引用而已。原始列表改变,被赋值的对象也会做相同改变# b = a...转载 2020-01-30 21:08:34 · 440 阅读 · 0 评论 -
python-in
tuple, list, dict, set用“in”来查找元素时效率是相差很大的。主要是因为dict, set背后原理是一个散列表。而tuple, list只是一个单纯类似与数组的结构。Python进阶(八):in的详解import timeimport randomLEN = 10 ** 7# 生成各不相同的10^7个元素in_set = {random.random() ...转载 2020-01-21 15:41:12 · 205 阅读 · 0 评论 -
zip()和zip(*)、list.sort()和sorted()、map、lambda、filter、reduce、repr
zip从参数中的多个可迭代对象中分别取元素组成元组,最后返回zip对象,可转为list查看def zip(*iterables): # zip('ABCD', 'xy') --> Ax By sentinel = object() iterators = [iter(it) for it in iterables] while iterators: ...原创 2020-01-20 22:18:03 · 548 阅读 · 0 评论 -
Python图像处理模块Pillow
PIL:Python Imaging Library,Python平台的图像处理标准库。1)使用 Image 类# PIL.Image.open(fp, mode='r')from PIL import Imageim = Image.open('pic.jpg')print(im)<PIL.JpegImagePlugin.JpegImageFile image mode=RG...转载 2019-10-06 21:55:35 · 282 阅读 · 0 评论 -
python内置模块-itertools
itertools模块提供的全部是处理迭代功能的函数,它们的返回值不是list,而是Iterator,只有用for循环迭代的时候才真正计算。count()生成无界限序列,count(start=0, step=1),必须手动break,count()会一直循环。import itertoolsfor i in itertools.count(1,2): print(i) i...原创 2019-10-06 15:58:31 · 95 阅读 · 0 评论 -
Python集合模块-collections
namedtuple是一个函数,它用来创建一个自定义的tuple对象,并且规定了tuple元素的个数,并可以用属性而不是索引来引用tuple的某个元素。# namedtuple('名称', [属性list]):from collections import namedtuplePoint = namedtuple('Point',(['x','y']))p = Point(1,2)pr...原创 2019-10-06 15:18:09 · 121 阅读 · 0 评论 -
容器 - list/tuple基本操作
创建添加元素(list only):append, extend删除元素(list only):del, pop根据索引读写(tuple只读)判断容器是否为空字符串转换容器元素数量 遍历# coding:utf-8# 创建li = [1, 2, 3, '456', [1, 2, 3], {1: 'one', 2: 'two'}]print(type(list)) # <...原创 2019-10-04 14:30:09 · 94 阅读 · 0 评论 -
not x、not None 和 is None的使用及区别
在python中 None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()都相当于False ,not None == not False == not ‘’ == not 0 == not [] == not {} == not ()a = 1b = [1]c = 0d = [0]e = []print(not a,not b,not c,not d...原创 2019-10-04 14:32:46 · 3609 阅读 · 0 评论 -
容器 - dict基本操作
初始化访问添加元素修改元素 删除元素判断key是否存在 判断容器是否为空容器元素数量 遍历# coding=utf-8"""字典"""d = {'a': 1, 'b': 2, 1: 'one', 2: 'two', 3: [1, 2, 3]} # 顺序不固定print(type(dict)) # <class 'type'>print(type(d)) ...原创 2019-10-04 14:48:16 · 121 阅读 · 0 评论 -
容器 - set基本操作add()、union()、update()
集合(set)是一个无序的不重复元素序列。add()函数 --添加元素,在原集合进行添加描述:如果集合s中不存在元素x,则将元素x添加到集合s中。语法:s.add(x)x —— 要添加的元素。集合s已经存在元素x,也不会报错。union()函数 --合并集合,返回新集合描述:生成集合的并集。即将集合a和集合b取并集,并将并集作为一个新的集合返回, 但是不改变原集合a和集合b语法:a....原创 2019-10-04 15:34:04 · 539 阅读 · 0 评论 -
python序列化和反序列化
序列化和反序列化程序运行的过程中,所有变量都是在内存中操作的,当程序一旦执行完毕,结束退出后,变量占有的内存就被操作系统回收了。 因此我们需要将某些数据持久化存储到磁盘中,下次运行的时候从磁盘中读取相关数据。我们将变量从内存中变成可以存储或传输的过程称之为序列化,在Python中叫做pickling,在其它语言中也称之为 serialization、marshaling、flattening等...原创 2019-10-04 15:59:57 · 102 阅读 · 0 评论 -
函数式编程技术lambda、map、filter、reduce
lambda:快速定义单行的最小函数,inline的匿名函数map(function, sequence) :对sequence中的item依次执行function(item),执行结果组成一个List返回filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tup...原创 2019-10-04 20:51:20 · 150 阅读 · 0 评论 -
正则表达式match、search、findall
import re"""re.match函数re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。"""m = re.match(r'dog','dog cat dpg')print(m.group()) # dog# m = re.match(r'dog','dpg cat dog')# print...原创 2019-10-04 21:28:40 · 275 阅读 · 0 评论 -
python时间模块time、datetime
import time"""函数time.time()用于获取当前时间戳"""print(time.time())"""返回浮点数的时间戳方式向时间元组转换,只要将浮点数传递给如localtime之类的函数。"""print(time.localtime())"""sleep() 函数推迟调用线程的运行,可通过参数secs指秒数,表示进程挂起的时间。"""for i in range(...原创 2019-10-04 21:49:23 · 102 阅读 · 0 评论 -
Python3-Urllib模块介绍
Python3-Urllib模块介绍主要内容1. 基本方法使用RequestPost数据使用代理2. 异常处理3. URL解析主要内容urllib is a package that collects several modules for working with URLs:主要模块:urllib.request for opening and reading URLsurllib.e...转载 2019-01-20 16:55:15 · 113 阅读 · 0 评论