您的位置:

python几个标准库用法(python五个标准库)

本文目录一览:

人工智能语言Python中的库是如何应用的

在Python中,第三方库有很多种,pandas是其中之一。那么pandas是用来做什么的呢?其实pandas的存在很大程度上是为解决数据分析问题而存在的。pandas中不仅包含着大量的关于数据分析的库和通用的数据模型,也包含处理数据的较为齐全完备的函数,这就使得Python的数据分析功能非常强大,从而当仁不让地成为人工智能语言。

pandas是Python的第三方库,也可以说是Python的数据分析包。同时,它也是开源的,是在数据分析中常见的库。类似于Python这样的开源编程的体系中,库一般有三类。第一类就是开发平台为我们提供的接口;第二类就是我们开发者自己写的程序;第三类就是pandas这样的能够专门用于解决某一领域问题的专用库。

经常使用Python的朋友都能体验到拥有强大标准库的Python是怎样处理数据的。Python语言的核心,除了数字、字符串、列表、字典、文件等常见类型和函数,还有Python标准库提供的各种功能,如系统管理、网络通信、文本处理、数据库接口、图形系统、XML处理等等,这些都建立在Python标准库的基础上。

关于其标准库的功能大概有以下几点:

1.文本处理:包括文本的格式化、正则表达式匹配、Unicode、文本差异的计算等;

2.文件处理:Python可直接操作与创建文件、对文件进行压缩归档、操作配置文件等;

3.操作系统:支持线程与进程、IO的复用、日期与时间处理、调用系统函数、日志等;

4.网络通信:主要内容是异步网络通信等;

除此之外,网络通信、科学计算也是Python标准库不可或缺的功能

Python作为一种开源的编程体系也有大量第三方模块,和标准库的使用是一样的。从功能角度而言同样覆盖科学计算、Web开发、数据库接口、图形系统多个领域。而且功能更加完备,更能够解决具体问题。这些模块不仅可用Python来写,同时也可以用C/C++,作为“胶水语言”的Python也可以将其粘合在一起。SWIG,SIP常用于将C语言编写的程序库转化为Python模块。Boost C++ Libraries包含了一组函式库,Boost.Python,使得以Python或C++编写的程式能互相调用。

在Python中安装第三方库可以在PyCharm中进行

首先打开PyCharm,选择顶部菜单File,选择Default Settings;

然后搜索project interpreter,选择当前Python环境,然后底部点击“+”号添加库;

其次搜索数据库名称,选中一个库之后点击底部的Install Package,安装成功即可,此时可以返回到之前的Project Interpreter中查看已经安装好的库,点击“-”号可以卸载不需要的库。

在使用第三方库时,在PyCharm中输入库之后即可开始使用,输入库用import,后面加上库的名称就可以了。

其实Python的优点就在于它的第三方库的调用方便易行,为开发者提供了很大的便利,也使得Python成为一门受欢迎的编程语言,同时Python中库的应用也是用Python开发其他程序的基础。

python自带性能强悍的标准库 itertools

可迭代对象就像密闭容器里的水,有货倒不出

itertools是python内置的标准模块,提供了很多简洁又高效的专用功能,使用得当能够极大的简化代码行数,同时所有方法都是实现了生成器函数,这就意味着极大的节省内存。

itertools提供的功能主要分为三大块,以最新版本的3.10为例:

方法如下:

导入包

iteratortools.count(start=0, step=1)

数值生成器,可以指定起始位置和步长,并且步长可以为浮点数。无限输出,一直累加,在例子中需要边睡眠1s边输出。

iteratortools.cycle(iteratorable)

无限循环取出可迭代对象里的元素

iteratortools.repeat(object[, times])

不断重复输出整个object,如果指定了重复次数,则输出指定次数,否则将无限重复。

iteratortools.accumulate(iteratorable[, func, *, initial=None])

返回对列表中元素逐项的操作,操作有:

iteratortools.chain(*iteratorables)

将多个可迭代对象构建成一个新的可迭代对象,统一返回。类似于将多个对象链成一条串

优点:可以将多个可迭代对象整合成一个,避免逐个取值

chain.from_iteratorable(iteratorable)

将一个迭代对象中将所有元素类似于chain一样,统一返回。

iteratortools.compress(data, selectors)

按照真值表筛选元素

iteratortools.dropwhile(predicate, iteratorable)

按照条件筛选,丢弃掉第一次不符合条件时之前的所有元素

iteratortools.takewhile(predicate, iteratorable)

根据predicate条件筛选可迭代对象中的元素,只要元素为真就返回,第一次遇到不符合的条件就退出。

按照条件筛选,丢弃第一次遇到不符合条件之后的元素。行为类似于上一个dropwhile,区别在于丢弃的选择不同。

iteratortools.filterfalse(predicate, iteratorable)

保留不符合条件的元素,返回迭代器

iteratortools.groupby(iteratorable, key=None)

按照指定的条件分类。输出条件和符合条件的元素

iteratortools.islice(iteratorable, start, stop[, step])

对迭代器进行切片,老版本中不能指定start和stop以及步长,新版本可以。

iteratortools.starmap(function, iteratorable)

将function作用于可迭代对象上,类似于map函数

iteratortools.tee(iteratorable, n=2)

从一个可迭代对象中返回 n 个独立的迭代器

iteratortools.zip_longest(*iteratorables, fillvalue=None)

创建一个迭代器,从每个可迭代对象中收集元素。如果可迭代对象的长度未对齐,将根据 fillvalue 填充缺失值。

迭代持续到耗光最长的可迭代对象。大致相当于:

iteratortools.product(*iteratorables, repeat=1)

生成多个可迭代对象的笛卡尔积

大致相当于生成器表达式中的嵌套循环。例如, product(A, B) 和 ((x,y) for x in A for y in B) 返回结果一样。

将可选参数 repeat 设定为要重复的次数。例如,product(A, repeat=4) 和 product(A, A, A, A) 是一样的

iteratortools.permutations(iteratorable, r=None)

由 iteratorable 元素生成长度为 r 的排列。元素的排列,类似于给一个[1,2,3],选取其中两个元素,一共有多少种组合方法?不要求元素排列之后的位置。

这个方法能够完美解决算法中的全排列问题,简直是量身定做。如果早知道这么简单,当年考算法也不会。。,哎

可参见leetcode46题:

iteratortools.combinations(iteratorable, r)

返回由输入 iteratorable 中元素组成长度为 r 的子序列。元素不可重复使用。子序列是要求元素在排列之后和之前的相对位置不变的。1,2,3中3在1的后面,子序列中3也一定在1的后面。

这个方法可以曲线解决组合总数问题

iteratortools.combinations_with_replacement(iteratorable, r)

返回由输入 iteratorable 中元素组成的长度为 r 的子序列,允许每个元素可重复出现

原文

Python 标准库模块 - re

正则表达式引擎对正则表达式文本进行编译生成正则表达式对象,再由正则表达式对象对目标文本进行匹配,后返回匹配结果。

正则表达式中一共包含 2 中字符: 普通字符 、 元字符

匹配单个字符的元字符及其含义:

匹配重复性的元字符及其含义:

匹配位置的元字符及其含义:

分组匹配的元字符及其含义:

表示或运算的元字符:

转义元字符:

在 Python 中使用正则表达式,我们需要借助 re 模块提供的强大 API,下面我们就来学习几个 re 模块常用的接口吧~

参数说明: findall("正则表达式", "要匹配的字符串", flags=标志1|标志2|...)

返回值:以列表形式返回匹配到的字符串。

下面,我们用 findall 返回 Python 之禅中首尾用到的反义词:

运行结果:

当正则表达式中含有一个以上分组时, findall 返回的列表由元组构成,元组中包含每个分组匹配到的内容。如果只有一个分组,则返回由该分组匹配到的内容组所构成的列表:

match 函数返回的结果是一个 SRE_Match 对象:

SRE_Match 具有很多的属性,比如 .string 属性可以方便我们我获取在匹配时输入的字符串:

属性 .re 可以获取匹配时使用的编译后的正则表达式模式:

由于默认使用了 re.UNICODE ,所以我们这里的 \w 可以匹配中文字符。

属性 .regs 则以列表的形式返回正则表达式匹配到的内容以及各个分组陪陪到的内容,不过请注意,返回的都是索引的形式:

可以使用序列切片来看一下我们的正则表达式及其中的两个分组所匹配到的内容:

SRE_Match 对象也提供了非常多好用的方法,比如 groups 可以获取各个分组匹配到的内容:

group 则可以灵活地获取正则表达式或对应分组匹配到的内容:

如果使用的正则表达式定义了分组的名称, group 还可以通过名称获取相应分组匹配的内容:

在定义了分组的名称之后,还可以方便地使用 groupdict 以字典的形式返回所有分组匹配的结果:

最后需要注意的是, match 从字符串的开头开始匹配,如果开头不符合要求,则直接返回 None 。

与 match 匹配开头不同, search 匹配第一个符合规则的字符串,未成功则返回 None 。参数: re.search(pattern, string, flags=0) ;返回值同 match 。

在介绍 match 的使用时,最后一个例子,由于我们在字符串前面添加了 'PYTHON' 导致 match 使用原来的正则表达式无法匹配,返回 None 。此时,使用 search 就可以迎刃而解啦:

运行结果:

小结:

参数: re.split(pattern, string, maxsplit=0, flags=0) , split 功能非常强大,以正则表达式匹配到的标志来分隔字符串,比如下面这样一个混乱的字符串,我们要提取其中所有的数字:

下面,我们就来详细介绍一下 split 的用法。

首先,是以单字符切割:

以分号切割时,共产生了 4 个子字符串,放在列表中返回。

下面,还是以单字符切割,但可以使用正则表达式中的 [] 来指定多种字符:

由于字符串 line 中有连续的 2 个分号,逗号或者空格,因此可以使用 [;\s,]+ 来切割:

最后,上面的字符串在切割时,分隔符都没有被保留下来,使用括号捕获分组,即可保留分隔符:

re.sub 提供比字符串的 replace 方法更加强大的功能:对于输入的字符串 string ,利用正则表达式 pattern 强大的字符串处理功能,实现复杂的字符串替换处理为 repl ,返回被替换后的字符串。

下面的例子中,我们将句子中多余的空格和数字去掉:

如果想要知道替换过程中,共发生了多少次替换,可以使用 subn :

小结:

上述的案例中,我们每次都需要传入正则表达式,相应的函数每次在调用时,都需要编译一次正则表达式。如果上述过程需要多次重复,那么每次都去耗费时间编译正则表达式是很不划算的。

re 模块为我们提供了 compile 函数,用来编译正则表达式模式,返回编译好模式。因此,可以把那些常用的正则表达式编译成正则表达式对象,以提高效率。

格式: re.compile(pattern, flags=0) ,其中 pattern 为编译时用的表达式字符串, flags 为编译标志位,用于修改正则表达式的匹配方式,如:是否区分大小写,多行匹配等。常用的 flags 有:

注:使用按位或 | 连接多个 flags 。

我们上述介绍的 re 模块的匹配、分割、替换函数, compile 函数的返回值类提供了相应的方法,使用方式类似,只是不需要传入正则表达式字符串而已。

由于用法几乎一致,这里就不一一举例啦~

贪婪模式 : * + ? {m,n} ,正则表达式的重复默认总是尽可能多得向后匹配内容。

非贪婪模式 : *? +? ?? {m,n}? ,尽可能少的匹配内容。

python的标准库是什么

Python 的标准库非常丰富,如下面列出的内容所示,其提供了非常多的功能。库包含内置模块 (用 C 编写的) 提供访问系统的功能,如文件 I/O,以及在为发生在日常编程中的许多问题提供标准化的解决方案的 Python 模块。这些模块的一些明确旨在鼓励和加强的 Python 程序的可移植性的抽象掉平台细节到非特定于平台的 Api。

————————————————

版权声明:本文为CSDN博主「Jurbo」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:

Python 常用的标准库以及第三方库有哪些

easy_install lxml import lxmllxml是Python语言里和XML以及HTML工作的功能最丰富和最容易使用的库。lxml是为libxml2和libxslt库的一个Python化的绑定。它与众不同的地方是它兼顾了这些库的速度和功能完整性,以及纯Python API的简洁性,大部分与熟知的ElementTree API兼容但比之更优越。

python里面什么是标准库?

python标准库是随着python安装时自带的库,是最基础、最常用的一些模块。