笔记为自我总结整理的学习笔记,若有错误欢迎指出哟~
python与数据结构
Python 中常见的数据类型
1.数字类型:
- 整数(int):表示整数值,例如 1、-5、100。
- 浮点数(float):表示带有小数部分的数字,例如 3.14、-0.5、2.0。
- 复数(complex):表示实部和虚部的复数,例如 2+3j。
2.布尔类型(bool):
- 表示真(True)或假(False)的逻辑值。
3.字符串类型(str):
- 表示文本数据,使用单引号或双引号括起来,例如 ‘Hello’、“World”。
4.列表类型(list):
- 表示有序的可变序列,可以包含不同类型的元素,使用方括号括起来,例如 [1, 2, ‘a’, True]。
5.元组类型(tuple):
- 类似于列表,但是不可变,使用圆括号括起来,例如 (1, 2, ‘a’, True)。
6.集合类型(set):
- 表示无序且唯一的元素集合,使用花括号括起来,例如 {1, 2, 3}。
7.字典类型(dict):
- 表示键值对的映射关系,使用花括号括起来,例如 {‘name’: ‘Alice’, ‘age’: 25}。
数据结构
1.数组(Array)
列表类型(list)
2.链表(Linked List)
class ListNode:
def __init__(self,x):
self.val = x
self.next = None
3.哈希表(Hash Table)
字典类型(dict)
4.队列(Queue)
list
进队:append()
出队:pop(0)
l = [1,2,3,4,5]
l.append(6)
l
#[1, 2, 3, 4, 5, 6]
l.pop(0)
l
#[2, 3, 4, 5, 6]
deque(类似双端队列)
deque
是 Python 中的一个内置模块 collections
中的类,用于实现双端队列(double-ended queue)。双端队列是一种具有队列和栈特性的数据结构,支持在两端进行插入和删除操作。
deque
提供了以下常用操作:
- 创建双端队列:
- 使用
deque()
函数创建一个空的双端队列。 - 例如:
from collections import deque
,d = deque()
。
- 使用
- 在队列两端插入元素:
- 使用
append(item)
在队列的右端插入一个元素。 - 使用
appendleft(item)
在队列的左端插入一个元素。 - 例如:
d.append(1)
,d.appendleft(2)
。
- 使用
- 在队列两端删除元素:
- 使用
pop()
删除并返回队列右端的元素。 - 使用
popleft()
删除并返回队列左端的元素。 - 例如:
d.pop()
,d.popleft()
。
- 使用
- 访问队列两端的元素:
- 使用
[-1]
索引访问队列右端的元素。 - 使用
[0]
索引访问队列左端的元素。 - 例如:
d[-1]
,d[0]
。
- 使用
- 获取队列长度:
- 使用
len(d)
获取队列中的元素个数。
- 使用
- 判断队列是否为空:
- 使用
not d
或len(d) == 0
判断队列是否为空。
- 使用
deque
还支持其他一些方法,如旋转队列、计数元素出现次数、反转队列等。双端队列在实际应用中常用于需要高效地在两端进行插入和删除操作的场景,比如实现缓存、任务调度等。
右进:append()
右出:pop()
左进:appendleft()
左出:popleft()
from collections import deque
q = deque([1,2,3])
q.append(4)
q
#deque([1, 2, 3, 4])
q.pop()
q
#deque([1, 2, 3])
q.appendleft(4)
q
#deque([4, 1, 2, 3])
q.popleft()
q
#deque([1, 2, 3])
使用:先进后出
#使用方法1:队头<--- 队列 <---队尾
#append() 队尾
#popleft() 队头
from collections import deque
q = deque([1,2,3])
q.append