=========================================set集合=======================
>>> set(range(10))
set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> a = set([1,2,3])
>>> b = set([2,3,4])
>>> a.union(b)
set([1, 2, 3, 4])
>>> a|b
set([1, 2, 3, 4])
>>> a&b
set([2, 3])
集合的遍历
>>> for x in a:
print x
集合的增删
>>> 1 in a
True
>>> 1 not in a
False
>>> a.add(4)
>>> a
set([1, 2, 3, 4])
>>> a.remove(4)
>>> a
set([1, 2, 3])
s.update(t)
s |= t
返回增加了 set “t”中元素后的 set “s”
s.intersection_update(t)
s &= t
返回只保留含有 set “t”中元素的 set “s”
s.difference_update(t)
s -= t
返回删除了 set “t”中含有的元素后的 set “s”
s.symmetric_difference_update(t)
s ^= t
返回含有 set “t”或者 set “s”中有而不是两者都有的元素的 set “s”
s.add(x)
向 set “s”中增加元素 x
s.remove(x)
从 set “s”中删除元素 x, 如果不存在则引发 KeyError
s.discard(x)
如果在 set “s”中存在元素 x, 则删除
s.pop()
删除并且返回 set “s”中的一个不确定的元素, 如果为空则引发 KeyError
s.clear()
删除 set “s”中的所有元素
=========================heapq堆模块==================================
>>> from random import shuffle
>>> data = range(10)
>>> data
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> from heapq import *
>>> shuffle(data)
>>> data
[5, 0, 3, 8, 2, 6, 7, 9, 4, 1]
>>> heap=[]
>>> for n in data:
heappush(heap,n)
>>> heap
[0, 1, 3, 4, 2, 6, 7, 9, 8, 5]
>>> heappush(heap,0.5)
>>> heap
[0, 0.5, 3, 4, 1, 6, 7, 9, 8, 5, 2]
>>> heappop(heap)
0
>>> heap
[0.5, 1, 3, 4, 2, 6, 7, 9, 8, 5]
=======================================deque=============================
>>> from collections import deque
>>> q=deque(range(5))
>>> q
deque([0, 1, 2, 3, 4])
>>> q.append(5)
>>> q
deque([0, 1, 2, 3, 4, 5])
>>> q.pop()
5
- 大小: 52.7 KB
- 大小: 27.7 KB
分享到:
相关推荐
Python的`collections`模块提供了`deque`双端队列,可以方便地实现入队`append()`和出队`popleft()`。 5. **堆(Heap)**:堆是一种特殊的树形数据结构,通常用于优先队列。Python的`heapq`模块提供了堆操作,如`...
7. **队列(Queue)**:队列是一种先进先出(FIFO)的数据结构,Python的`collections`模块提供了`deque`双端队列,可以实现队列操作。 在"CJLU 2023 Python 数据结构 PTA 作业.zip"中,可能包含了各种基于这些数据...
Python的`collections`模块提供了`deque`双端队列,可以高效地实现队列操作。 9. **树(Tree)**:树是一种非线性的数据结构,广泛应用于文件系统、数据库索引、表达式解析等领域。Python中可以通过类和实例化来实现...
Python的collections模块提供了deque(双端队列)类,支持在两端添加和删除元素。 8. 序列解包(Unpacking):Python允许将序列(如列表或元组)的元素解包到多个变量中,简化了代码的可读性。 9. 列表推导式(List ...
高级数据结构:如双端队列(deque)、堆(heapq)、图(网络x等库)和哈希表(使用内置的dict或第三方库如bloomfilter)的中文应用。 常用算法:排序算法(如快速排序、归并排序、Timsort对中文字符串的性能影响)...
Python的`collections`模块提供了`deque`双端队列,可以实现先进先出(FIFO)的队列操作,如`append()`、`appendleft()`、`popleft()`、`pop()`等。 9. **排序算法** - 冒泡排序:简单直观,时间复杂度O(n^2)。 - ...
`collections`模块中的`Counter`类用于计数,`deque`实现双端队列,`defaultdict`简化了字典的初始化;`set`和`frozenset`类对应集合操作。 此外,课程可能还涵盖了递归、动态规划、贪心算法、回溯法等高级算法思想...
`collections`模块则提供了`deque`双端队列,适合于快速插入和删除操作。此外,`heapq`和`collections`还可以帮助我们实现LRU缓存策略,这是一种常见的内存管理策略。 接着,我们转向算法。算法是一系列解决问题的...
12. **队列(Queue)**:先进先出(FIFO)的数据结构,Python的`collections.deque`可以实现双端队列,常用于任务调度、缓存等场景。 13. **字符串处理**:Python的字符串是不可变的,但提供了丰富的字符串操作方法,...
- `collections` 模块提供了如 `deque`(双端队列)等高效的数据结构。 #### 7. 数值和数学模块 - `math` 模块提供了常用的数学函数,例如 `math.sqrt()` 计算平方根。 - `random` 模块提供了生成随机数的函数,如...
5. 队列(Queue)和堆(Heap):Python的collections模块提供了队列和堆实现,如deque(双端队列)和heapq库,用于优先级队列等场景。 6. 栈(Stack):LIFO(后进先出)数据结构,可以使用列表模拟实现。 7. 树结构...
- **队列**:`collections.deque`类提供双端队列功能。 - **堆**:`heapq`模块提供了堆数据结构。 - **链表**:虽然Python没有内置链表,但可以通过类定义实现。 - **树**:可以通过类定义构建二叉树、N叉树等...
`collections`模块提供了更高级的数据结构,如deque(双端队列)、Counter(计数器)和namedtuple(带名称的元组)。 在学习笔记中,可能会详细解释每种数据结构的特点、操作方法以及它们的优缺点。同时,通过...
- `collections`模块:提供了多种高级数据结构,如Counter(计数器)、deque(双端队列)和namedtuple(命名元组)。 - `heapq`模块:实现了堆数据结构,支持基本的堆操作。 - `queue`模块:提供线程安全的队列...
可以使用collections模块的deque(双端队列)来高效地实现保留最近N个元素的功能,如`from collections import deque; last_n = deque(maxlen=N)`。 4. **查找最大或最小的 N 个元素**: Python的heapq模块提供了...
1. `__init__`: 初始化方法,创建一个空的双端队列`queue`用于存放待爬取URL,以及一个集合`visited`用于记录已访问过的URL。 2. `new_url_size`: 返回待爬取URL的数量。 3. `old_url_size`: 返回已访问URL的数量...
此外,这个项目可能还会介绍一些实用的Python库,如networkx用于图的构建和分析,heapq用于堆操作,collections模块提供了对高级数据结构的封装,如Counter(计数器)、deque(双端队列)等。通过熟悉并运用这些库,...
11. **使用适当的数据结构**:根据数据的特性和操作需求,选择最适合的数据结构,如deque(双端队列)用于快速插入和删除,heapq(堆队列)用于优先级队列等。 12. **并行计算**:当处理大量数据或执行独立的任务时...