- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章分享九个一般人不知道的Python好用技巧由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
本篇分享是Python生态系统中关于一些有用的技巧。大多数技巧只是使用标准库中的包,但其他一些技巧会涉及一些第三方包.
在开始阅读本文内容之前,我们首先来回顾一下Python中的Iterables的概念.
根据Python标准文档,Iterable的概念如下:
iterables的示例包括:
Iterables是一个需要我们牢记的概念,因为接下来我们展示的许多技巧都使用itertools包.
itertools模块提供了一些函数,用于接收Iterable对象,而不仅仅是打印逐个对象.
在工作学习中,我们经常会需要使用一个简单的函数来实现从一个list来生成新的list,set或dict.此时我们就会用到iterables概念.
举例来说:
生成List
生成Set
生成Dict
个人建议:
仅当for语句、函数调用和方法调用的数量较少时使用.
有时,我们需要获得两个列表对象之间的所有可能组合.
我们首先想到的实现可能如下:
或者简化一下,如下:
上述实现已经很简洁了,但标准库itertools提供product函数,从而提供了相同的结果。如下所示:
假设有一个元素列表,我们需要在每对相邻元素之间比较或应用一些操作,这有时称为2个元素的滑动窗口。我们可以采用以下方式:
运行结果如下:
有时,我们会需要一个类来存储信息,但是如果我们觉得创建一个类并定义其__init__()函数太麻烦时,我们不妨选择使用dataclass。如下所示:
上述代码创建了一个具有默认构造函数的类,该类以与声明相同的顺序接收相应字段的赋值.
dataclass的另一个优点是,默认情况下,会生成特殊方法,如__str__、 repr 、__eq__等。关于dataclass的更多用法,可以 参考官网 .
值得一提的是我们在类中声明的成员变量的类型注释(str、int等)并不强制在构造函数中传递的值属于这种类型。也就是说dataclasses构造对象时并不执行数据类型的检查.
我们有时希望将一个对象上的操作视为tuple上的操作,一种选择是使用collections.namedtuple,但也存在更类似于dataclass的实现。如下:
上述定义了一个标准的类可以被当做tuple来使用,如下:
假如我们有一个dataclass,需要验证输入数据是否符合类型注释。在这种情况下,安装第三方软件包pydantic并将 。
from dataclasses import dataclass 替换为 from pydantic.dataclasses import dataclass 即可,如下:
这将生成一个类,该类具有根据成员变量声明的类型进行输入数据的解析和类型验证。 Pydantic 在运行时强制执行类型提示,并在数据无效时提供友好的错误提醒.
在某些情况下,我们需要生成一些容器中元素频率的基本统计信息。在这种情况下,您可以使用标准结构Counter来接收iterable并根据元素的频率生成相应的统计信息.
Counter也提供了一些其他方法,比如如most_common,用于检索最常见的元素.
如果我们相对两个list中的元素对做相应的函数处理,我们最容易想到的方法如下:
但是使用函数map可以让代码更加简洁一些.
有时候我们需要从一个list中随机选择一个元素,此时我们使用random.choice.如下所示:
如果我们需要随机选择多个元素呢?当然是使用random.choices. 。
上述代码中的参数k为我们随机选择元素的个数.
本文重点介绍了在python中9个和迭代相关的使用技巧,可以方便提升大家的工作效率.
您学废了吗?
原文地址:https://www.toutiao.com/a7040687632497541639/ 。
最后此篇关于分享九个一般人不知道的Python好用技巧的文章就讲到这里了,如果你想了解更多关于分享九个一般人不知道的Python好用技巧的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
直接上代码,可以写在公共文件common和继承的基础类中,方便调用 ?
1、php服务端环境搭建 1.php 服务端环境 安装套件 xampp(apach+mysql+php解释器) f:\mydoc文件(重要)\dl_学习\download重要资源\apache
如下所示: Eclipse快捷键 Ctrl+1 快速修复 Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加) Ctrl+Alt+↑ 复制当前行到上一行(复制增加)
第一步:conn.PHP文件,用于连接数据库并定义接口格式,代码如下: php" id="highlighter_808731">
本篇文章整理了几道Linux下C语言的经典面试题,相信对大家更好的理解Linux下的C语言会有很大的帮助,欢迎大家探讨指正。 1、如果在Linux下使用GCC编译器执行下列程序,输出结果是什么?
安装完最新的Boost库 官方说明中有一句话: Finally, $ ./b2 install will leave Boost binaries in the lib/ subdirecto
为了梳理前面学习的《spring整合mybatis(maven+mysql)一》与《spring整合mybatis(maven+mysql)二》中的内容,准备做一个完整的示例完成一个简单的图书管理功
网站内容质量仅仅是页面综合得分里面的一项.不管算法如何改变调整,搜索引擎都不会丢弃网站页面的综合得分。 一般情况下我们把页面的综合得分为8个点: 1、标题的设置 (标题的设置要有独特性)
最近事情很忙,一个新项目赶着出来,但是很多功能都要重新做,一直在编写代码、debug。今天因为一个新程序要使用fragment来做,虽然以前也使用过fragment,不过没有仔细研究,今天顺道写篇文
Android资源命名规范 最近几个月,大量涉及android资源的相关工作。对于复杂的应用而言,资源命名的规范很有必要。除了开发人员之外,UI设计人员(或者切图相关人员)也需要对资源使用的位置非常
以前一直使用Hibernate,基本上没用过Mybatis,工作中需要做映射关系,简单的了解下Mybatis的映射。 两者相差不多都支持一对一,一对多,多对多,本章简单介绍一对一的使用以及注意点。
如下所示: ? 1
如果想在自定义的View上面显示Button 等View组件需要完成如下任务 1.在自定义View的类中覆盖父类的构造(注意是2个参数的) 复制代码 代码如下: publ
实现功能:实现表格tr拖动,并保存因为拖动改变的等级. jsp代码 ?
代码:测试类 java" id="highlighter_819000"> ?
红黑树是一种二叉平衡查找树,每个结点上有一个存储位来表示结点的颜色,可以是red或black。 红黑树具有以下性质: (1) 每个结点是红色或是黑色 (2) 根结点是黑色的 (3) 如果一个
废话不多说,直接上代码 ? 1
码代码时,有时候需要根据比较大小分别赋值: ? 1
实际项目开发中,我们经常会用一些版本控制器来托管自己的代码,今天就来总结下Git的相关用法,废话不多说,直接开写。 目的:通过Git管理github托管项目代码 1、下载安装Git 1、下载
直接上代码: 复制代码 代码如下: //验证码类 class ValidateCode { private $charset = 'abcdefghkmnprstuvwxyzABC
我是一名优秀的程序员,十分优秀!