大家好,我是池野~今天,我们就来看看一些日常工作中经常用到的Python小技巧。01.集合开发者经常忘记Python也有集合数据类型,而且大家都喜欢什么都用列表。什么是套装?简单地说:集合就是不包含重复元素的无序事物的集合。如果你很好地掌握了集合及其逻辑,那么很多问题都可以得到解决。例如,如何获得出现在单词中的字母?myword="NanananaBatman"就这么简单,问题就解决了。这个例子来自Python官方文档,所以不要太惊讶。再举个例子,如何在不重复的情况下获取列表的每个元素?#首先,你可以很容易地将set更改为list和其他方式我们可以看到“c”元素不再重复。只有一处需要注意,mylist和mynewlist的元素顺序可能不同:mylist=["c","c","a","b"]可以看出顺序两个列表中的元素不同。接下来,我们再深入一点。假设一些实体之间存在一对多的关系,更具体的例子:用户和权限。通常,一个用户可以拥有多个权限。现在假设有人要修改多个权限,即同时增加和删除一些权限,这个问题应该怎么解决呢?#这是更改前的权限集;总的来说,不要害怕使用集合,它们可以帮助你解决很多问题,更多细节请参考Python官方文档。02.Calendar在开发日期时间相关的功能时,有些信息可能非常重要,比如某年的这个月有多少天。这个问题看似简单,但我认为日期和时间是一个非常难的话题,我认为日历的实现是非常有问题的,它是一场噩梦,因为你需要考虑很多角落案例。那么如何准确地知道一个月有多少天呢?importcalendar一个月的第一天当然很简单,就是1号。但是,“本月的第一天是第X周”,如何使用此信息?你可以很容易地找出某一天是星期几:calendar.monthrange(2024,2)也许这段代码不适合直接用于生产,因为你可以使用datetime更容易地找到星期几:fromdatetimeimportdatetimetotal话说,日历模块有很多有趣的东西,值得慢慢学习:#checkingifyearisleap:03.枚举有第二个参数对,枚举有第二个参数,和许多有经验的开发人员可能不知道。我们来看一个例子:mylist=['a','b','d','c','g','e']第二个参数可以指定从哪里开始枚举,比如上面代码中的enumerate(我的清单,16)。如果需要处理偏移量,可以考虑这个参数。04.if-else逻辑你经常需要根据不同的条件处理不同的逻辑。没有经验的开发者可能会写出类似下面的代码:OPEN=1虽然这段代码看起来还不错,但是如果有20+条件呢?那么,应该怎么办?fromenumimportIntEnum是Python中的一种常见模式,它可以使代码看起来更简洁,尤其是当方法非常大并且需要处理很多条件时。05.enum模块enum模块提供了一系列处理枚举的实用函数,最有趣的是Enum和IntEnum。让我们看一个例子:fromenumimportEnum,IntEnum,Flag,IntFlag使用IntEnum编写的代码类似,但有一些不同:MyEnum.FIRST=="first"#False在中型代码库中,枚举模块在管理常量方面有很大帮助。枚举的本地化可能有点棘手,但可以做到,我将用django快速演示它:fromenumimportEnum06。iPython`iPython只是交互式Python,它是一个交互式命令行shell,有点像Python解释器。首先,你需要安装iPython:pipinstallipython接下来,你只需要在输入命令时将Python替换为ipython:#启动后你应该看到这样的东西:ipython支持很多系统命令,比如ls或cat,选项卡键可以显示提示,也可以使用上下键查找以前用过的命令。最后,我的分享到此结束,希望能给大家带来一些帮助~如果觉得可以,就点个赞吧,谢谢支持~
