![](https://img-blog.csdnimg.cn/20190615210103933.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
python高级编程
本专栏为介绍了一些实用的python高级编程技巧,如有错误,希望大家指正。
血小板自动机
Acmer蒟蒻,深度学习炼丹师,DB魔法师,二次猿
展开
-
python的自省机制
文章同步更新于:blog.dalao.icu/archives/34.html,请访问该博客获得更好的阅读体验。1.什么是自省机制在编程语言中,自省(introspection)并不是自我反省,而是指自我检查行为。它的内容包括:告诉别人,我是谁告诉别人,我能做什么检查某些事物以确定它是什么,它能做什么,这样,给开发人员带来了极大的灵活性和控制力。具体的来说,就是OPP(面向对象)语言在程序运行时,能够知道对象的类型,部分语言还能够知道对象所拥有的属性。自省机制,对很多动态语言(如pyt原创 2020-06-22 22:14:08 · 2285 阅读 · 1 评论 -
python中的Mixin设计模式
文章同步更新于:blog.dalao.icu/archives/33.html,请访问该博客获得更好的阅读体验。1.什么是Mixin设计模式mixin设计模式可以看做是多继承的一种。那么首先,咱们谈谈为什么会出现多继承这种语法。汽车和飞机他们都同属于交通工具,但飞机可以飞行,汽车无法做到,所以,飞行这个行为不能写到交通工具这个类中,如果每一个交通工具各自实现自己的行驶方法,就违背了代码尽可能重用的原则(如果交通工具种类越来越多,就会造成大量代码冗余)。所以,我们要表示飞行这个行为,就需要进行多继承原创 2020-06-21 20:42:41 · 2276 阅读 · 0 评论 -
【python高级编程】实现用户历史记录功能
问题提出假设我们现在有一个猜数游戏,用户需要猜对一个数才会停止,但是随着猜的数字的递增,用户不知道到底哪几个数已经猜过了,这个使用我们可以使用历史记录来帮助用户进行游戏。使用deque对象deque对象是collections模块中的双端循环队列,可以指定容量大小。我们可以借助deque对象来实现保留用户最近5条历史记录的功能。from collections import deque...原创 2019-06-16 15:07:12 · 1040 阅读 · 0 评论 -
【python高级编程】使字典保持有序
问题提出假设我们现在有一场测试,数据使用字典存储,key值表示名字,value值只是一个元组,其中元组第一个元素表示排名,第二个元素表示用时,当点击提交考卷后,就会自动将元素存入字典,若是用普通字典,我们就无法使其按提交的顺序排列了,这种使用,我们可以使用OrderedDict()对象,来保持字典有序。使用OrderedDict对象(有序字典)OrderedDict对象是collectio...原创 2019-06-16 15:00:06 · 184 阅读 · 0 评论 -
【python高级编程】快速找到多个字典中的公共键
问题提出假设我们有4个字典,我们如何快速知道这四个字典中的公共键?# 生成4个字典, 第i个字典代表第i轮{“进球球员":进球数}s1 = {x: randint(1, 4) for x in sample('abcdefg', randint(3, 6))}s2 = {x: randint(1, 4) for x in sample('abcdefg', randint(3, 6))}...原创 2019-06-16 14:53:18 · 170 阅读 · 0 评论 -
【python高级编程】根据字典中值的大小排序
根据字典中值的大小排序我们知道,如果普通字典类型是无序的,并且,使用sorted函数对其排序,它只会对字典中的键值排序,这是为什么呢?# 1.生成成绩表from random import randintdata = {x: randint(1, 100) for x in "abcde"}# 2.直接对字典进行排序print(sorted(data)) # 默认按key值排序#...原创 2019-06-16 14:48:31 · 1025 阅读 · 0 评论 -
【python高级编程】python中的Counter对象统计词频
使用Counter对象进行词频统计统计词频是非常常见的一个实际场景应用,假设我们要对文章进行词频统计,我们可以利用python中的字典+遍历的方法来统计,但是这样比较麻烦,我们可以使用collections模块中的Counter对象方便的进行词频统计。from collections import Counterfrom random import randint# 统计字典词频dat...原创 2019-06-16 14:39:23 · 2553 阅读 · 0 评论 -
【python高级编程】namedtuple用法--给元组中的每个元素命名
为什么要给元组中的每个元素命名给每个元组中的元素命名,我们就可以使用名字去访问对应元素,相对于索引访问,这样可以大大提高程序的可读性。使用元组赋值法在c语言中,我们可以定义常量来命令,或者使用枚举变量来完成,而在python中,可以使用元组赋值法进行。假设我们有一个元组,从0-2的索引分别对饮与,NAME,AGE,GRADE,我们可以用以下方式去完成:NAME, AGE, GRADE ...原创 2019-06-15 23:29:51 · 1006 阅读 · 0 评论 -
【python高级编程】在列表,字典,集合中根据条件筛选数据
列表筛选假设我们现在有一个学生成绩信息data列表,现在我们要得到其中的奇数,可以有3种方式。使用循环迭代使用filter过滤器使用列表解析式from random import randintfrom timeit import timeitdata = [randint(-10, 10) for _ in range(10)] print("data=", data)...原创 2019-06-15 20:58:36 · 477 阅读 · 0 评论