摘要:
问题4:对dict、list、tuple中的元素排序 一)对字典中元素排序 方法一:利用sorted的key参数进行排序 from random import randint date = {k:randint(0, 20) for k in range(10)} c = sorted(date.i 阅读全文
摘要:
问题3:如何统计序列中元素的出现频度 例1:从随机列表中,找到找到出现次数最高的3个元素,及出现次数 方法一: from random import randint date = [randint(0, 20) for _ in range(100)] c = dict.fromkeys(date, 阅读全文
摘要:
问题5:如何快速找到多个字典中的公共键(key) 方法一:for in循环 from random import randint, sample a1 = {k; randint(1, 4) for k in 'abcdefg'} a2 = {k; randint(1, 4) for k in 'a 阅读全文
摘要:
问题6:如何让字典保持有序(使用collections的OrderedDict方法) from collections imort OrderedDict d = OrderedDict() d['aa'] = (1, 30) d['bb'] = (2, 31) d['cc'] = (3, 32) 阅读全文
摘要:
问题7:如何实现用户的历史记录功能(最多n条) 实例:制作猜字游戏,添加历史记录功能,显示用户最近猜过的数字 解决方案:使用容量为n的队列存储历史记录 使用标准库colections中的deque,一个双端循环队列 程序退出前,可以使用pickle将队列对象存入文件,再次运行程序时将导入其中 deq 阅读全文
摘要:
问题10:如何使用生产器函数实现可迭代对象 注:了解生产器函数,查询:Python:生成器函数 案例: 需求:实现一个可迭代的类,它能迭代出给定范围内所有素数; 思路:1)构造一个类(如:PrimeNumbers()),给定两个参数,如:1、100,来限定搜索的范围;2)对实例(如:pn)进行迭代, 阅读全文
摘要:
问题8~9:如何实现可迭代对象和迭代器对象 一)通过可迭代对象和Python内置函数iter()得到迭代器:即,iter(可迭代对象) --> 得到一个迭代器; 例:list_1 = [1, 2, 3, 4, 5] 1、iter(对象),若此对象想满足迭代要求,其内部要有迭代接口或者一个序列:__i 阅读全文
摘要:
问题11:如何进行反向迭代 & 如何实现反向迭代 # 有关列表问题,参考:Python:列表list 案例: 需求:实现一个连续浮点数发生器FloatRange(和range类似),根据给定范围(start,end)和步进值(step),产生一系列连续的浮点数; 如迭代FlartRange(3.0, 阅读全文
摘要:
问题12:如何对迭代器做切片操作 方案: 方案一:可以使用readlines()函数,将文件的每行分成一个列表:lines = f.readlines(),在对其进行切片:lines[100 : 300]; #弊端:如果文本文件过大,则可能导致内存不足; 方案二:使用标准库itertools下的is 阅读全文
摘要:
问题13:如何在for语句中迭代多个可迭代的对象 from random import randint a1 = [randint(10, 50) for _ in range(5)] a2 = [randint(10, 50) for _ in range(5)] a3 = [randint(10 阅读全文
摘要:
问题14:如何拆分含有多种分隔符的字符串 方法一:连续使用str.spilt()方法,每次处理一种分隔符; str.split()方法的应用:按某一种分隔符分割字符串; #不能用单词字符进行分割(字母、数字、下划线) A、str.split()的用法 #此处是str.spilt(),而不是re.sp 阅读全文
摘要:
问题15:如何判断字符串a是否以字符串b开头或结尾 方法一:使用正则表达式的^和$实现 '^000':表示,只匹配字符串的开头,若开头是 '000' ,则返回 ['000'] ; '000$':表示,只匹配字符串的结尾,若结尾是 '000' ,则返回 ['000'] ; #弊端:一次只能匹配一种能, 阅读全文
摘要:
问题16:如何调整字符串中文本的格式 案例:修改字符串中日期的表示方式 方案:使用re.sub()方法,对字符串中的内容进行排序替换; import re r = '2018-04-10 heyongcan zai xue python' #将文件a中的内容读取到r1变量中 # r1 = open( 阅读全文
摘要:
问题17:如何将多个小字符串拼接成一个大的字符串 功能:实现字符串拼接 方案一:迭代列表,连续使用‘+’操作依次拼接每一个字符串; r1 = ['abc', '123', 'def', '456', 'hig', '789'] s1 = '' #方法一:直接相加 #弊端:造成浪费; #原因:每进行一 阅读全文
摘要:
问题19:如何去掉字符串中不需要的字符 案例一:过滤空白字符; 案例二:过滤\r字符; 案例三:去掉文本中的unicode组合符:拼音的音调; #具体实现,参加:Python:删除字符串中的字符 方案一:字符串strip()、lstrip()、rstrip()方法,去掉字符串两端字符; 方案二:使用 阅读全文
摘要:
问题18:如何对字符串进行左、右、居中对齐 案例:如何实现,让字典d显示时按冒号对齐 方案一:使用字符串的str.ljust(),str.rjust(),str.center()函数进行左、右、居中对齐 d = { 'a':1, 'aa':11, 'aaa':111, 'aaaa':1111, 'a 阅读全文
摘要:
问题20:如何读写文本文件 关于文件操作,参考:Python:文件操作 知识点杂集: 一、文件存储与读取的步骤: 1)思路: str.encode('编码格式'):对unicode字符串进行编码,编码成连续字节的格式,才能存放到文件中,即物理介质上; str.decode('解码格式'):对物理介质 阅读全文
摘要:
问题21:如何处理二进制文件 一、二进制文件的结构 1、结构:头部信息 + 数据; 头部信息:是对这个文件是结构的介绍信息,相当于书本的目录; 数据:文件各个结构的具体信息,相当于书本的内容; 2、打开二进制文件 例:f = open(path, 'rb'):以只读形式打开指定文件; 3、读取文件: 阅读全文
摘要:
问题22:如何设置文件的缓冲 一、什么是文件的缓冲? 1、说明 将文件内容写入到硬件设备时,比如磁盘的扇区,则需要进行系统调用,这类I/O操作的耗时很长,为了减少I/O操作的次数,文件通常使用缓冲区(当需要写入的字节数不足一个块时,将数据放入缓冲区,当数据凑够一个块的大小后才进行系统调用); 2、文 阅读全文
摘要:
问题23:如何将文件映射到内存 一、说明 1)什么叫映射? ==>就是给一个对象(可以是变量、物理等),起一个唯一的别名,建立一一对应的关系; 2)文件映射:将磁盘上的文件的位置,与进程逻辑地址空间中一块大小相同的区域之间的一一对应; 3)映射后得到一个类似数组类型的东西(mmap.mmap()对象 阅读全文