Python
qq_39149099
这个作者很懒,什么都没留下…
展开
-
7.2编写只接受关键字参数的函数
学习笔记,参考文档《Python CookBook》# -*- coding: utf-8 -*- # @CreateTime : 2022/5/9 17:35# @ModifyTime : 2022/5/9 17:35# @Author : xuming# @File : 7.2编写只接受关键字参数的函数.py# @Software: PyCharm# @Description:"""问题:我们只希望函数通过关键字的形式接受特定的参数解决方案:如果将关键字原创 2022-05-09 17:52:50 · 200 阅读 · 0 评论 -
第16条考虑用生成器来改写直接返回列表的函数
实例:查询字符串首字母在字符串中的位置"""举例:查询出字符串中每个单词的首字母在字符串中的位置"""str1 = "Beautiful is better than ugly,Explicit is better than implicit."def index_word(text): if text: yield 0 for index, letter in enumerate(text): if letter == " ":原创 2022-04-29 15:00:47 · 216 阅读 · 0 评论 -
10python函数enumerate和zip
"""enumerate可以在遍历迭代器的时候获取每个元素的索引参数start=0,指定初始默认值"""for item in enumerate("dfkdjf",start=10): print(item)for _, item in enumerate("dfkdjf"): print(item)结果:(10, 'd')(11, 'f')(12, 'k')(13, 'd')(14, 'j')(15, 'f')dfkdjf...原创 2022-04-28 14:24:26 · 518 阅读 · 0 评论 -
46使用内置算法与数据结构
数据结构:双向队列"""双向队列1,双向队列是一种能在队列两端都进行入队、出队操作的数据结构2,deque是为了在两端高效实现插入和删除操作的双向列表,适合用于队列和栈"""# 初始化双向队列,双向队列可以调用无参构造函数创建一个空队列,也可以使用可迭代对象创建,并初始化一个队列import collectionsd1 = collections.deque() # 创建一个空队列d2 = collections.deque(['a', 'b', 'c']) # 从list创建原创 2022-04-27 14:08:42 · 219 阅读 · 0 评论 -
python cookbook文本处理:linux shell通配符
利用shell通配符查看匹配字符串"""问题3:利用shell 通配符做字符串匹配使用通配符*,?,【0-9】做匹配符fnmatch 不区分大小写fnmatchcase 区分大小写"""from fnmatch import fnmatch, fnmatchcaseprint(fnmatch("foo.txt", "*.txt"))print(fnmatch("foo.txt", "?oo.txt"))names = ["Dat1.csv","Dat2.csv","config.原创 2022-04-22 10:39:50 · 1480 阅读 · 0 评论 -
python cookbook学习笔记:字符串分割与字符串匹配
《python cookbook》学习笔记import re"""问题1:针对任意多的分隔符拆分字符串.py以空格,分号,逗号为分隔符分割字符串[]匹配括号内任意元素?:以非捕获组的形式返回分割后的字符串"""line = "asdf fjdk; afed, fjek,asdf, foo"res = re.split(r'[;,\s]\s*', line)print(res)res = re.split(r'(?:;|,|\s)\s*', line)print(res原创 2022-04-21 16:32:13 · 513 阅读 · 0 评论 -
1.13通过公共键对字典列表排序
# -*- coding: utf-8 -*- # @CreateTime : 2022/3/23 9:12# @ModifyTime : 2022/3/23 9:12# @Author : xuming# @File : example_01.py# @Software: PyCharm# @Description:"""我们有一个字典列表,想根据一个或者多个字典中的值来对列表排序,此时,可以利用operator模块中的itemgetter函数"""from...原创 2022-03-23 11:13:47 · 562 阅读 · 0 评论 -
python实用脚本-查找指定目录下的大文件
通过输入目录地址,可查找指定目录下的大文件。脚本如下:# -*- coding: utf-8 -*- # @CreateTime : 2022/2/15 14:25# @ModifyTime : 2022/2/15 14:25# @Author : xuming# @File : get_big_file.py# @Software: PyCharm# @Description:import osdef get_big_file(path, file_size原创 2022-02-15 14:30:37 · 400 阅读 · 0 评论 -
python实用脚本-获取软件md5值
我们下载软件过程中,为了确保下载的软件没有被修改过,可以通过python脚本校验md5值,若与官方给出的md5不一致,则表示该软件被修改过,不安全,若一致,则软件是可信的。举例如下,下载python软件,校验MD5。脚本如下:# -*- coding: utf-8 -*- # @CreateTime : 2022/2/14 9:21# @ModifyTime : 2022/2/14 9:21# @Author : 1.txt# @File : get_fil.原创 2022-02-15 14:22:31 · 1049 阅读 · 1 评论 -
python第三方库openpyxl
python操作Excel实例记录# -*- coding: utf-8 -*- # @CreateTime : 2021/9/24 17:05# @ModifyTime : 2021/9/24 17:05# @Author : xuming# @File : tmp.py# @Software: PyCharm# @Description:# "900811","900811""""python魔法方法__slots____slots__用于限定对象属性"原创 2022-01-10 13:24:04 · 292 阅读 · 0 评论 -
python 闭包
闭包就是一个函数的返回值为子函数且子函数使用了外部函数的变量,则该函数就是一个闭包。举例如下,求一个数字列表的各个数的乘积:def out_fun(nums): def inner_fun(): sums = 1 for num in nums: sums *= num return sums return inner_funres = out_fun([1,2,3,4,5,6])print(res)原创 2021-12-09 09:03:31 · 354 阅读 · 0 评论 -
python 自定义排序sorted
sorted函数语法解析:def sorted(__iterable: Iterable[_T], *, key: (_T) -> SupportsLessThan,reverse: bool = ...) -> List[_T]iterable:可迭代对象key:接受一个函数,返回需要排序的字段reverse=True,排序结果为降序排列import operatorscore = [('Alice', 72), ('Candy', 90), ('Bob', 6...原创 2021-12-08 22:29:44 · 646 阅读 · 0 评论 -
python 文件操作
python文件操作主要包括文件属性、文件读写及文件追加,其中文件追加中a和a+的区别在于a是进行追加写,a+既可以进行追加写,也可以进行读操作,代码举例如下:# file对象属性:name,mode,closedwith open("1.txt", "r") as fp: print(fp.name) print(fp.mode) print(fp.closed)# read方法,默认读取所有内容,可选参数size,读取指定字节内容with open("1.txt",原创 2021-12-08 09:50:46 · 402 阅读 · 0 评论 -
python 数据结构ChainMap
ChainMap数据结构主要用于将多个映射快速的连接到一起,比使用update更叫的高效,其原理是将多个映射关系组织在一个列表中,不是创建一个新的对象,只是进行对象的引用,故原映射中值的改变会影响ChainMap,ChainMap中值的改变也会影响原映射关系。1,初始化ChainMapfrom collections import ChainMapdict1 = {"a": 1, "b": 2, "c": 3}dict2 = {"d": 4, "e": 5, "c": 6}p = Chai原创 2021-12-07 08:58:08 · 370 阅读 · 0 评论 -
python 数据结构OrderedDict
OrderedDict 有序字典,擅长重新排序操作,常规的dict被设计为非常擅长映射操作特有方法 OrderedDict类的popitem()方法有不同的签名。它接受一个可选参数来指定弹出哪端元素。有序字典的popitem()方法移除并返回一个 (key, value) 键值对。 如果last值为真,则按LIFO后进先出的顺序返回键值对,否则就按FIFO先进先出的顺序返回键值对。 OrderedDict类有一个move_to_end()方法,可以有效地将...原创 2021-12-06 09:05:47 · 595 阅读 · 0 评论 -
python 数据结构Counter
Counter一般用于统计字频,返回top n,代码如下from collections import Countert = Counter("sdfjlksjdfkdsj")print(t)# top n问题print(t.most_common(3))# 追加t.update("jdfkd")print(t)t1 = Counter("djfks")t.update(t1)print(t)# Counter对象有一个字典接口,如果引用的键没有任何记录,就返回一个0,而不是弹原创 2021-12-05 16:27:02 · 352 阅读 · 0 评论 -
python 数据结构deque
1,deque的初始化deque数据结构有2个参数,iterable和maxlen,iterable用于初始化deque双向队列,若为空,则为空的双向队列,maxlen指定队列中元素个数,若队列已满,当新项加入后,则相同数量的项会从另一端弹出。2,deque方法介绍append(x)添加x到右端。appendleft(x)添加x到左端。extend(iterable)扩展deque的右侧,通过添加iterable参数中的元素。extendleft(iterable...原创 2021-12-05 08:58:54 · 738 阅读 · 0 评论 -
python 高阶函数map
map是python内置的高阶函数,其接受一个函数f和一个list,通过函数f作用于每一个元素,并返回一个map迭代器。map使用举例如下:# ord 根据字符获取对应的ascii码# chr 根据ascii码获取对应的字符from collections.abc import Iterator# 判断以下单词是否为按照字母升序排列test_list = ["effort", "circle", "yearly", "woolen", "accept", "lurker",原创 2021-12-03 12:33:36 · 541 阅读 · 0 评论 -
python 数据结构defaultdict
在数据处理中,我们常常会遇到统计元素个数等问题,比如,一片文章中,统计各个单词出现的次数,然后统计出高频词汇等,此时,使用defauldict不仅可以简化代码,还可以提高运行效率。defaultdict是dict的一个子类,具有dict的一切特性。代码举例如下:# 统计users中各个元素出现的次数users = ["tom1", "tom2", "tom3", "tom1", "tom2", "tom2", "tom1", "tom5"]statistics_user = {}for us原创 2021-12-02 09:08:38 · 959 阅读 · 0 评论 -
python 数据结构namedtuple
namedtuple简单解析:1,namedtuple是一个工厂函数,用于创建一个类,该类主要的作用在于方便进行数据初始化,便于通过“对象实例.属性”进行访问2,返回值为元组的子类,具有元组的一切特性代码举例如下:from collections import namedtuple# namedtuple一般用于数据处理中,其作用是定义了一个简单的类,使我们能够方便的操作数据"""一般情况,我们可以定义一个Person类,其属性包含姓名,性别,年龄,住址,通过定义类,不仅会增加代码原创 2021-12-01 22:36:35 · 639 阅读 · 0 评论 -
python 数据结构元组
元组的特点:1,不可变的可迭代对象2,可拆包3,可作为字典的key4,线程安全以上特性举例如下:tuple1 = (1, 2, 4, 5, 56, 23)for item in tuple1: print(item)tuple2 = ("春晓", 12, "女", "北京朝阳区12号院")name, age, gender, address = tuple2print(name, age, gender, address)# 取某一个元素tuple2 = ("春原创 2021-12-01 21:45:18 · 265 阅读 · 0 评论 -
python魔法方法__slots__
python魔法方法__slots____slots__用于限定对象属性,防止随意添加对象属性,便于管理对象属性,Teacher对象限定为三个属性,则动态添加country属性时会报错。class Teacher(object): __slots__ = ("name", "age", "gender") def __init__(self, name, age, gender): self.name = name self.age = ag.原创 2021-12-01 09:19:59 · 455 阅读 · 0 评论 -
python魔法方法__str__和__repr__
python魔法方法__str__,__repr____str__方法用于将字符串内容输出到屏幕展示给客户看__repr__方法用于将字符串内容输出到屏幕展示给开发人员看对于自定义的类,通过print语句只能获取到对象的内存地址print语句默认调用__str__方法,直接输入变量,则调用__repr__举例如下:...原创 2021-12-01 09:06:44 · 172 阅读 · 0 评论 -
python魔法方法__len__
"""python魔法方法__len__,用于统计像list等对象中元素个数,对于自定义的类,是没有实现__len__方法的,故要想通过len()函数获取对象中元素个数,就需要自定义__len__方法,若未定义__len__方法而直接使用len()函数则会报错"""自定义类实现__len__方法后可以通过len()函数获取元素个数,比如统计篮球俱乐部刚创建的时候有几个人,举例如下:class BasketClub(object): def __init__(self, persons.原创 2022-05-11 10:35:19 · 706 阅读 · 0 评论 -
Python格式化字符串
格式化字符串可以通过占位符%s,格式化函数format,f-string进行格式化操作,特别需要注意的时字符串中存在花括号时,只能通过{{方式来输出花括号。举例如下:name = "小孔"age = 18# 通过格式转换符实现变量替换str1 = "hello,我是%s,我今年%s" % (name, age)# 通过位置参数实现变量替换str2 = "hello,我是{},我今年{}".format(name, age)# 通过关键字参数实现变量替换str3 = "hello,我是{n原创 2021-11-29 17:56:55 · 254 阅读 · 0 评论 -
Mysql插入百万条数据记录
场景:测试百万条数据条件下,前端查询效率是否满足性能需求。准备条件:通过mysql语法可知,使用insert into table(col1,col2,col3) values(value1,value2,value3),(value1,value2,value3);可以一次性批量插入多条数据,利用此特性,我们可以通过python脚本拼接sql语句,实现一次输入多条数据,此处1百万条数据我分为10次插入,每次拼接10万条数据,脚本包含三部分:数据库连接,insert语句拼接及脚本执行,代码如下:原创 2021-11-29 13:46:31 · 1324 阅读 · 0 评论 -
Python 类和对象的私有属性
类和对象的私有属性已双下划线开头,私有属性只能在类和对象的内部进行访问,若需要在外边访问,需要给其写一个特定的访问方法即可。私有属性是为了保护类和对象的属性不被外部污染而设计的。举例如下:class Person: country = "China" count = 0 def __init__(self, name, age=None, gender=None, country=None): self.name = name self.__a原创 2021-11-29 09:41:03 · 135 阅读 · 0 评论 -
Python 类属性学习笔记
类和实例对象是有区别的,类属于模板,而实例是根据类创建的对象,是具体的实物,比如人是一个类,而Tom,Mary是具体的对象。属性也分为类属性和实例属性,类属性是所有的实例都可以访问的共有资源,只有一份,其属性值的变化会影响到所有实例,而实例属性是自个独有的,每一个实例都有自己的实例属性,其属性值变化仅对实例本身有影响,类属性可以通过类或者实例进行调用,而实例属性只能通过实例对象进行调用,举例如下:class Person: country = "China" def __init__原创 2021-11-29 09:25:24 · 81 阅读 · 0 评论 -
Python 实例属性笔记
每一个类都有一批相同的属性,比如类Person(),对于此类来说,其基本属性包括姓名、年龄、性别、国籍等基础信息。故在定义Person 类时,我们就应该初始化基本属性。举例如下:class Person: def __init__(self, name, age=None, gender=None): self.name = name self.age = age self.gender = genderp1 = Person("Tom")原创 2021-11-29 09:14:43 · 203 阅读 · 0 评论 -
Python 类的定义和实例化
1、类的定义和实例化在python中,类的定义是通过关键字class 实现的,类名称首字母大写,有三种定义方法。举例如下:class Person1: passclass Person2(): passclass Person3(object): pass类的实例化即把抽象的类赋予实物的过程,创建实例使用类名+(),举例如下:class Person1: passclass Person2(): passclass Pe原创 2021-11-29 09:04:30 · 434 阅读 · 0 评论 -
python字符串和文本处理专题-匹配字符串开头或结尾
关键字:endwith、startwith应用场景:endwith和startwith主要用于匹配字符串的开头或者结尾,一般用于判断文件类型等。举例如下:将某个目录下的dll和ini文件筛选出来import osdlls = []for item in os.listdir(r"C:\MSP"): if os.path.isfile(os.path.join(r"C:\MSP", item)) and item.endswith((".dll", ".ini")):原创 2021-10-27 15:05:54 · 391 阅读 · 0 评论 -
python字符串和文本处理专题-字符串拆分
关键字:split,re.splitsplit举例line = " asdf dfsdf; adfefd, fefdd,adfdf, foo "# 默认以空格作为分隔符print(line.split())# 指定分隔符print(line.split("df"))# 结果"""['asdf', 'dfsdf;', 'adfefd,', 'fefdd,adfdf,', 'foo'][' as', ' ', 's', '; a', 'efd, fefdd,a'原创 2021-10-27 11:37:08 · 234 阅读 · 0 评论 -
python函数open使用记录
关键字:open、read、readline、readlinesopen函数主要用于读取文件内容,其常用方法包括read、readline、readlines,举例说明用法。read函数默认读取文件所有内容,也可以指定读取文件大小,读取文件时指定每次读取内容蛀牙用于大文件的读取,比如大于内存容量的文件,100G,就只能通过此方法读取该文件。# 默认读取所有内容file = r"E:\icp_admin\help\1.txt"with open(file=file,mode="r") as原创 2021-10-20 11:04:15 · 97 阅读 · 0 评论 -
Python高级编程阅读笔记-好的命名之变量命名
python变量分类1)常量2)变量常量通常在模块级别定义,并以所有大写字母书写,下划线分隔单词,例如MAX_NUMBER、USER、PASSWORD。变量,使用小写字母表示,多个单词之间可以使用下划线连接。命名指南使用has或者is前缀命名布尔元素使用复数形式命名序列元素用现实的名称命名字典...原创 2021-08-08 16:14:55 · 49 阅读 · 0 评论