我是靠谱客的博主 自信猫咪,最近开发中收集的这篇文章主要介绍python高级编程知识点_(转)python 高级编程技巧学习笔记,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

转自https://www.jianshu.com/p/104cec085611,部分图出不来,mark一下,关键时候供查看。

第二章 数据结构相关话题

2.1、筛选数据

两种方式

filter函数:filter(lambda x: x>0, data)

注意:python3 需要把filter的结果转为list ,也就是list(filter(lambda x: x>0, data))

加条件的遍历: [ x for x in data if x > 0 ]

如果想转成集合,就把[]改成{}

2.2、如何为元组的每个元素命名

使用元组的好处:减少存储开销

缺点:使用索引访问元素,降低程序可读性

解决方案:

1、定义一系列数值常量

NAME, AGE, SEX, EMAIL = range(4)

2、使用标准库中的collections.namedtuple替代内置tuple

2.3、如何统计序列中出现的频度

解决方案:使用collections.Counter对象

将序列传入Counter的构造器,得到Counter对象是元素频度的字典

Counter.most_common(n)方法得到频度最高的n个元素的字典

2.4、如何根据字典中值的大小,对字典进行排序

解决方案:使用内置函数sorted

2.5、如何快速找到多个字典的公共键

案例:统计每轮比赛都有进球的球员

解决方案:利用集合的交集操作

1、使用字典的viewkeys()方法,得到一个字典keys的集合

2、使用map函数,得到所有字典的keys的集合

3、使用reduce函数,取所有字典的keys的集合的交集

2.6、如何让字典保持有序,也就是遍历的时候按插入顺序打印

解决方案:使用collections.OrderedDict

以OrderedDict代替内置字典dict,依次将数据存入OrderedDict

2.7、如何实现用户的历史记录功能(最多n条)

解决方案:使用容量为n的队列容量存储历史记录

使用标准库collections中的deque,它是一个双端循环队列

程序退出前,可以使用pickle将队列存入文件,再次运行时将其导入。

第三章 迭代器

3.1、如何实现可迭代对象和迭代器对象

可迭代对象需要有iter方法,这个方法返回迭代器对象。

而迭代器对象则要有next()

3.2、如何使用生成器函数实现可迭代对象

yield关键字

yield 是一个类似 return 的关键字,只是这个函数返回的是个生成器

当你调用这个函数的时候,函数内部的代码并不立马执行 ,这个函数只是返回一个生成器对象

当你使用for进行迭代的时候,函数中的代码才会执行

3.3、 如何进行反向迭代以及如何实现反向迭代

解决方案:

1、使用内置函数reversed()方法

2、实现反向迭代协议的 __reverse 方法,它返回一个反向迭代器

3.5、 如何对迭代器做切片操作

解决方案:使用标准库中的itertools.islice,它能返回一个迭代对象切片的生成器

3.6、如何在一个for语句中迭代多个可迭代对象

解决方案:

并行:使用内置函数zip,它能将多个可迭代对象合并,每次迭代返回一个元组

串行:使用标准库中的itertools.chain,它能将多个可迭代对象连接

第四章 字符串处理

4.1、如何拆分含有多种分隔符的字符串

解决方案:

1、连续使用str.split()方法,每次处理一种分隔符

2、使用正则表达式的re.split()方法,一次性拆分字符串

4.2、如何判断一个字符串是以b开头或结尾

解决方案:

使用字符串的str.startswith()和endswith()方法。注意:多个匹配时参数使用元组。

4.3、如何调整字符串中文本的格式

解决方案:

使用正则表达式re.sub()方法做字符串替换,利用正则表达式的捕获组,捕获每个部分内容,在替换字符串中调整各个捕获组的顺序

4.4、如何将多个小字符串拼接成一个大字符串

解决方案:

方法一:迭代列表,使用‘+’连接字符串

方法二:使用str.join()方法,更加快速的拼接列表的字符串

4.5、如何对字符串进行左中右对齐

解决方案:

1、使用字符串的str.ljust(), str.rjust(), str.center()进行左中右对齐

2、使用format()方法,传递类似‘<20’, '^20', '>20'参数

4.6、如何去掉字符串中不需要的字符

解决方案:

1、字符串strip(), lstrip(), rstrip()去掉字符串两端字符

2、删除单个固定位置的字符,可以使用切片 + 拼接的方式

3、字符串的replace方法或正则表达式re.sub()删除任意位置字符

4、字符串translate()方法,可以同时shanchu删除多种不同字符

第五章 文件处理

5.1、如何读写文本文件(py2和py3区别)

字符串的语义发生变化

py2 py3

str ---> bytes

unicode ----> str

解决方案:

py2 写入文件前对unicode编码,读入文件后对二进制解码

py3 open函数指定‘t’的文本模式,encoding指定编码格式

5.2、如何处理二进制文件

解决方案:

open函数以二进制模式打开文件,指定mode为‘b’

二进制文件可以用readinto,读入到提前分配好的buffer中,便于数据处理

解析二进制文件可以用标准库中的struct模块的unpack方法

5.3、如何设置文件的缓冲

解决方案:设置open函数的buffering参数

1、全缓冲,buffering设置为大于1的整数n,n为缓冲区大小

2、行缓冲,buffering设置为1,遇到换行符n就停止缓冲

3、无缓冲,buffering设置为0

5.4、如何将文件映射到内存

解决方案:使用标准库mmap模块中的mmap()函数,它需要一个打开的文件描述符作为参数

5.5、如何访问文件的状态

解决方案:

1、系统调用,标准库中os模块下的三个系统调用stat, fstat, lstat获取文件状态

2、快捷调用,标准库中os.path下一些函数,使用起来更加简洁(没有文件 访问权限的函数)

5.6、如何使用临时文件?

解决方案:使用标准库中tempfile下的TemporaryFile, namedTemporaryFile

第六章 数据处理

6.1、如何读写CSV数据

解决方案:使用标准库中的CSV模块,可以使用其中reader和writer完成CSV读写

6.2、如何读写json数据

解决方案:使用标准库中的json模块,其中loads,dumps函数可以完成json数据的读写

6.3、如何读写Excel文件

解决方案:使用第三方库xlrd和xlwt,这两个库分别用于Excel读和写

最后

以上就是自信猫咪为你收集整理的python高级编程知识点_(转)python 高级编程技巧学习笔记的全部内容,希望文章能够帮你解决python高级编程知识点_(转)python 高级编程技巧学习笔记所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部