Python标准库(待续)

简介: 相识一场,记得顶我集合操作并集>>> a = set([1,2,3])>>> b = set([2,3,4])>>> a.union(b){1, 2, 3, 4}>>> a|b{1, 2, 3, 4}交集>>> a = set([1,2,3])>>> b = set([2,3,4])>>> a.

相识一场,记得顶我


集合操作

并集
>>> a = set([1,2,3])
>>> b = set([2,3,4])
>>> a.union(b)
{1, 2, 3, 4}
>>> a|b
{1, 2, 3, 4}
交集
>>> a = set([1,2,3])
>>> b = set([2,3,4])
>>> a.intersection(b)
{2, 3}
>>> a&b
{2, 3}
子集归属
>>> c = a&b
>>> c.issubset(a)
True
>>> c<=b
True
>>> c<=a
True
>>> c>=a
False
因为集合是可变的,但是集合本身包含的是不可变对象,所以以下代码会报错。
>>> a = set([1,2,3])
>>> b = set([2,3,4])
>>> a.add(b)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'set'
这时候我们需要使用frozenset类型,用于代表不可变的集合,它会创建一个副本对象加入到集合中。
>>> a.add(frozenset(b))
>>> a
{1, 2, 3, frozenset({2, 3, 4})}
堆操作

堆是一种数据结构,它是优先队列的一种,它在查找方面比列表的效率要高得多。

heappush(heap,x) 入堆
heappop(heap) 出堆
heapify(heap) 把可迭代对象转换为堆
heapreplace(heap,x) 将堆中最小元素弹出,同时将x入堆
nlargest(n,iter) 找出可迭代对象中第n大元素
nsmallest(n,iter) 找出可迭代对象中第n小元素

>>> from heapq import *
>>> from random import shuffle
>>> data = range(10)
>>> shuffle(data)
>>> heap = []
>>> for n in data:
       heappush(heap,n)
>>> heap
[0, 2, 1, 3, 5, 7, 4, 6, 9, 8]
>>> heappop(heap)
0
>>> heappop(heap)
1
>>> heappop(heap)
2
>>> heappop(heap)
3
>>> heap
[4, 5, 7, 6, 9, 8]
-----------------------------------------
>>> heap = [9,7,2,4,5,6,2,3,1]
>>> heapify(heap)
>>> heap
[1, 3, 2, 4, 5, 6, 2, 7, 9]
-----------------------------------------
>>> heapreplace(heap,0.5)
1
>>> heap
[0.5, 3, 2, 4, 5, 6, 2, 7, 9]

从上述代码运行的结果可以看出,这是一个小根堆的排序算法---位于i位置上的元素总比i/2位置处的元素大,反过来也就是i位置处的元素总比2i和2i+1位置处的元素小。

双端队列
>>> from collections import deque
>>> q = deque(range(5))
>>> q.append(5)
>>> q.appendleft(6)
>>> q
deque([6, 0, 1, 2, 3, 4, 5])
>>> q.pop()
5
>>> q.popleft()
6
>>> q
deque([0, 1, 2, 3, 4])
>>> q.rotate(2)
>>> q
deque([3, 4, 0, 1, 2])
>>> q.extend([3,4])
>>> q
deque([3, 4, 0, 1, 2, 3, 4])
>>> q.extendleft([2,1])
>>> q
deque([1, 2, 3, 4, 0, 1, 2, 3, 4])

从上述代码可以看出双端队列的好处在于它可以在列表的两端进行操作和旋转列表。

time

可以使用实数表示,也可以使用包含9个整数的元组表示。如果使用元组表示,那这些整数的意义如下:
(2018,1,21,10,28,30,2,21,0)
表示2018年1月21日,10时28分30秒,星期3,当天为当年的第21天,(无夏令时)

asctime([tuple]) 将时间元组转换为字符串
localtime([secs])将秒数转换为日期元组,以本地时间为准
mktime(tuple)将时间元组转换为本地元组
sleep(secs)休眠
strptime(string[,format])将字符串解析为时间元组
time()当前时间
'Wed Jul 11 10:02:04 2018'

random

random() 返回0<n<=1之间的随机实数n
getrandbits(n) 以长整型形式返回n个随机位 (加密有用)
uniform(a,b) 返回随机实数n,其中a<=n<b,(a,b)之间的均匀分布
randrange([start],stop,[step]) 返回range(start,stop,step)中的实数
choice(seq)从序列seq中返回随意元素
shuffle(seq[,random])原地指定序列
seqsample(seq,n) 从序列seq中选择n个随机且独立的元素

re

re模块是一个正则表达式的模块

compile(pattern[,flags]) 根据包含正则表达式的字符串创建模式对象
search(pattern, string[,flags])在字符串中寻找模式
match(pattern,string[,flags]) 在字符串的开始处匹配模式
split(pattern,string[,maxsplit=0])根据模式的匹配来分割字符串
findall(pattern,string) 列出字符串中模式的所有匹配项
sub(pat,repl,string[,count=0])将字符串中所有pat的匹配项用repl替换
escape(string) 将字符串中所有特殊正则表达式字符转义

用任意长度的逗号和空格序列来分割字符串

some_text = 'alpha,beta,,,,gamma delta'
re.split('[, ]+',some_text)
['alpha', 'beta', 'gamma', 'delta']
目录
相关文章
|
26天前
|
XML JSON 数据库
Python的标准库
Python的标准库
164 77
|
2月前
|
调度 开发者 Python
Python中的异步编程:理解asyncio库
在Python的世界里,异步编程是一种高效处理I/O密集型任务的方法。本文将深入探讨Python的asyncio库,它是实现异步编程的核心。我们将从asyncio的基本概念出发,逐步解析事件循环、协程、任务和期货的概念,并通过实例展示如何使用asyncio来编写异步代码。不同于传统的同步编程,异步编程能够让程序在等待I/O操作完成时释放资源去处理其他任务,从而提高程序的整体效率和响应速度。
|
2月前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
86 0
|
2月前
|
机器学习/深度学习 算法 数据挖掘
数据分析的 10 个最佳 Python 库
数据分析的 10 个最佳 Python 库
102 4
数据分析的 10 个最佳 Python 库
|
27天前
|
XML JSON 数据库
Python的标准库
Python的标准库
48 11
|
2月前
|
人工智能 API 开发工具
aisuite:吴恩达发布开源Python库,一个接口调用多个大模型
吴恩达发布的开源Python库aisuite,提供了一个统一的接口来调用多个大型语言模型(LLM)服务。支持包括OpenAI、Anthropic、Azure等在内的11个模型平台,简化了多模型管理和测试的工作,促进了人工智能技术的应用和发展。
135 1
aisuite:吴恩达发布开源Python库,一个接口调用多个大模型
|
2月前
|
XML 存储 数据库
Python中的xmltodict库
xmltodict是Python中用于处理XML数据的强大库,可将XML数据与Python字典相互转换,适用于Web服务、配置文件读取及数据转换等场景。通过`parse`和`unparse`函数,轻松实现XML与字典间的转换,支持复杂结构和属性处理,并能有效管理错误。此外,还提供了实战案例,展示如何从XML配置文件中读取数据库连接信息并使用。
Python中的xmltodict库
|
27天前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
66 8
|
2月前
|
存储 人工智能 搜索推荐
Memoripy:支持 AI 应用上下文感知的记忆管理 Python 库
Memoripy 是一个 Python 库,用于管理 AI 应用中的上下文感知记忆,支持短期和长期存储,兼容 OpenAI 和 Ollama API。
103 6
Memoripy:支持 AI 应用上下文感知的记忆管理 Python 库
|
1月前
|
安全 API 文件存储
Yagmail邮件发送库:如何用Python实现自动化邮件营销?
本文详细介绍了如何使用Yagmail库实现自动化邮件营销。Yagmail是一个简洁强大的Python库,能简化邮件发送流程,支持文本、HTML邮件及附件发送,适用于数字营销场景。文章涵盖了Yagmail的基本使用、高级功能、案例分析及最佳实践,帮助读者轻松上手。
35 4