python学习
OopsZero
这个作者很懒,什么都没留下…
展开
-
Spyder环境里, 如何导入自己编写的模块?
缘由该问题的实质是如何让自编模块所在的目录加入到python的搜索路径里.因为导入操作都是执行同样的命令: import myudf只是因为其路径不在pythonpath的名单里, 所以会抛出:ImportError: No Module named blabla.解决办法:假设: myudf.py所在的路径为: c:\abc\xyz方法1: 用Sypder工具:Tools/PYTHONPATH manager: to open a windowAdd and Select转载 2020-05-22 14:51:46 · 2384 阅读 · 0 评论 -
Python内存管理与垃圾回收机制
1 引用计数器1.1环状的双向链表 refchain在python程序中创建的任何对象都会放在refchain链表中,其中每个对象在内部会创建一些数据。比如一个int型数据tmp=8,则在内部表现为【上一个对象,下一个对象,类型,引用个数,val=8】,而如果创建一个list对象listTmp=[1,2,3,4],则在内部表现为【上一个对象,下一个对象,类型,引用个数,items=[1...原创 2020-04-29 16:25:23 · 550 阅读 · 0 评论 -
python内置模块deque
deque是double-ended queue的缩写, 叫做双端队列,可以实现从队列头部快速增加和取出对象: popleft()和appendleft()虽然list也有pop()和append的方法,但是时间复杂度是O(n),而使用deque是复杂度为O(1).还有其他的方法如下:append:同list的append,在队尾加入一个元素appendleft:在队首加入一个元素...转载 2019-07-29 17:27:13 · 428 阅读 · 0 评论 -
Python中join和split函数
join()函数可以指定字符至字符串中而split()函数可以指定字符分割字符串原创 2019-07-26 23:13:10 · 282 阅读 · 0 评论 -
Python中堆模块heapq
对于排序算法有很多种,其中包括常见的:冒泡排序,选择排序, 插入排序, 希尔排序, 快速排序, 归并排序, 堆排序这里主要讲一下堆排序, 可以采用自己的方式实现, 也可以采用Python内置模块heapq实现, 现在分别从这两种方法实现一下.(1) 自己实现import mathfrom collections import dequedef print_tree(arra...原创 2019-07-27 10:25:13 · 594 阅读 · 0 评论 -
list方法中append和extend的比较总结
list.append(object) 向列表中添加一个对象objectlist.extend(sequence) 把一个序列seq的内容添加到列表中举例说明:1. 在一个list中追加一个整型常量2. 在一个list中追加一个list可以看到上述的区别,append函数将b看成一个对象,整体都放到a中而extend函数将b和a进行合并...原创 2019-07-23 15:36:41 · 221 阅读 · 0 评论 -
set集合操作
1. set集合是一个无序且不重复的集合注意:(1)由不同元素组成,且每个元素不能重复(2)无序的(在Python2是无序的,在Python3中是有序的)(3)集合中的元素必须是不可变类型(不可变类型指的是集合中的元素不可以修改,因此常用来作为字典的键)(4)集合没有切片操作2. 创建集合(1)直接创建s = {1,2,3,4,5,6,7,8}(2...转载 2019-08-26 09:30:07 · 1900 阅读 · 0 评论 -
dict常见方法
1. 定义字典是一种可变容器模型, 且可存储任意类型对象.具有极快的查找速度.字典是一种通过名字或者关键字应用的数据结构, 其键可以是数字,字符串,元组,这种结构类型称之为映射.基本的操作如下:(1)len( ) 返回字典中键->值对的数量(2)d[k] 返回关键字对应的值(3) d[k] = v 将值关联到键值k上(4) del d[k] 删除键值为k...转载 2019-08-26 09:32:20 · 4035 阅读 · 0 评论 -
字符串操作常见方法
python中字符串是不可变对象,所以所有修改和生成字符串的操作的实现方法都是另一个内存片段中新生成一个字符串对象。例如,'abc'.upper()将会在划分另一个内存片段,并将返回的ABC保存在此内存中。1. 大小写转换(1)lower, upper返回字符串的小写,大写格式(注意,这是新生成的字符串,在另一片内存片段中)>>> print('ab XY'...原创 2019-08-26 09:35:53 · 1743 阅读 · 0 评论 -
用Python读取matlab生成的mat文件不成功
问题描述:在用matlab生成很多的mat文件后,用scipy.io中的loadmat函数读取出现问题,具体报错如下于是debug发现只有其中的一个读取出现错误,其它的正常.于是我单独读取该mat文件,发现又可以读取,简直崩溃...遂上网查,发现是mat文件在压缩时版本的问题,如下解答,也就是说version7是对mat文件默认自动压缩的,但是为啥就只有一个文件读取出错呢?...原创 2019-07-05 21:02:19 · 1236 阅读 · 0 评论 -
python中四种命名方式
1、object #公用方法2、_object #半保护 #被看作是“protect”,意思是只有类对象和子类对象自己能访问到这些变量, 在模块或类外不可以使用,不能用’from module import *’导入。 #__object 是为了避免与子类的方法名称冲突, 对于该标识符描...转载 2019-07-10 22:04:52 · 1266 阅读 · 0 评论 -
if __name__ == 'main': 的理解
对于if __name__ == 'main': 的理解1、这段代码的功能一个python的文件有两种使用的方法,第一是直接作为脚本执行,第二是import到其他的python脚本中被调用(模块重用)执行。因此if __name__ == 'main': 的作用就是控制这两种情况执行代码的过程,在if __name__ == 'main': 下的代码只有在第一种情况下(即文件作为脚...转载 2019-07-10 21:59:40 · 440 阅读 · 0 评论 -
二级Python
2018年9月份在全国计算机等级考试科目中加入“二级Python”,但现在还没有出台完整详细的考试大纲,官方网站也仅仅是简单说明了考试时长(120分钟)、大概形式(网络环境、无纸化)和环境要求(Python 3.5.2以上IDLE),考试大纲暂时还没有提供下载。新增的二级Python考试科目内容肯定会以基本数据类型、运算符、内置函数、选择结构与循环结构、函数定义与调用、面向对象编程基础、简单的...转载 2019-02-19 11:34:34 · 1487 阅读 · 0 评论 -
图解Python深拷贝和浅拷贝
转自https://www.cnblogs.com/wilber2013/p/4645353.htmlPython中,对象的赋值,拷贝(深/浅拷贝)之间是有差异的,如果使用的时候不注意,就可能产生意外的结果。下面本文就通过简单的例子介绍一下这些概念之间的差别。对象赋值直接看一段代码:will = ["Will", 28, ["Python", "C#", "JavaScri...转载 2019-03-28 10:00:18 · 126 阅读 · 0 评论 -
数组的一些常见操作
1、如果在数组中出现np.nan或者np.inf, 而又想要把这些值用其他值代替, 该如何操作?# 用-1代替nan值和inf值missing_bool = np.isnan(arr2)arr2[missing_bool] = -12、如果要求数组的行或列的最小值,使用np.amin函数import numpy as nparr1 = np.arange(1,10).r...原创 2019-04-08 14:48:29 · 235 阅读 · 0 评论 -
@staticmethod和@classmethod的作用与区别
一般来说,要使用某个类的方法,需要先实例化一个对象再调用方法。而使用@staticmethod或@classmethod,就可以不需要实例化,直接类名.方法名()来调用。这有利于组织代码,把某些应该属于某个类的函数给放到那个类里去,同时有利于命名空间的整洁。既然@staticmethod和@classmethod都可以直接类名.方法名()来调用,那他们有什么区别呢从它们的使用上来看...转载 2019-04-26 14:23:40 · 3868 阅读 · 1 评论 -
python同时将两个list按照相同的顺序打乱
import randomaa = [1, 2, 3, 4, 5, 6]bb = [1, 2, 3, 4, 5, 6]cc = list(zip(aa, bb))random.shuffle(cc)aa[:], bb[:] = zip(*cc)print(aa, bb)# 输出为:[1, 3, 5, 2, 4, 6] [1, 3, 5, 2, 4, 6]转自https:...转载 2019-04-23 19:55:46 · 3300 阅读 · 0 评论 -
python类的私有变量和私有方法
#!/usr/bin/env python# -*- coding:utf-8 -*-# @Time : 2017/11/08 8:46# @Author : lijunjiang# @File : class3.py"""类的私有变量和私有方法在Python中可以通过在属性变量名前加上双下划线定义属性为私有属性特殊变量命名1、 _xx 以单下划线开头的表示的是pro...转载 2019-05-18 22:49:50 · 190 阅读 · 0 评论 -
Python -- map, Lambda, filter and reduce方法
map(func, seq)对seq中的每一个元素,调用func并返回结果。典型的应用是使用lambda函数。 >>>defsquare(x): returnx**2 >>> square=map(square,range(10)) >>>print(square) [...转载 2019-05-18 23:04:22 · 184 阅读 · 0 评论 -
在字典里添加元素
在目标检测中,当需要把所有目标框画在图像上时,需要利用到字典进行处理。也就是说当同一个标签对应的多个目标时,以标签作为键创建一个字典,对应的多个目标框作为值,如何在同一个键上追加多个值用下面代码实现。label_path = r'.\label_2\000007.txt'image_path = r'.\image\000007.png'# 读取标签target = {}with ...原创 2019-05-21 22:19:17 · 5391 阅读 · 0 评论 -
读取文件夹下所有文件路径(python和matlab)
python中采用os模块中的listdir函数和walk函数# 方式1import ostestPath = r'.\INRIAPerson\Test\pos'fileNames = os.listdir(testPath)fileDir = [os.path.join(testPath, fileName) for fileName in fileNames]#方式2for...原创 2019-02-27 21:48:02 · 2280 阅读 · 0 评论