数据结构算法——python数据结构

张开发
2026/5/21 7:30:09 15 分钟阅读
数据结构算法——python数据结构
python数据结构常用数据结构字符串s hello python # 基础操作 print(s[0]) # 索引 print(s[1:5]) # 切片 print(len(s)) # 长度 print(s.strip()) # 去空格 print(s.split( )) # 分割 print(s.upper()) # 大写 print(s.lower()) # 小写 # 遍历 for char in s: print(字符:, char)元组tuplet (1, 2, 3, a, b) # 基础操作 print(t[0]) print(t.count(2)) print(t.index(a)) print(len(t)) # 拆包 a, b, c (1, 2, 3) # 遍历 for item in t: print(元组元素:, item)列表listlst [10, 20, 30, 40] # 增删改查 lst.append(50) lst.pop() lst[1] 15 lst.insert(0, 0) # 排序 lst.sort() # 遍历 for num in lst: print(列表元素:, num) # 带下标遍历 for idx, num in enumerate(lst): print(idx, num)栈stack [1, 2, 3] # 入栈、出栈 stack.append(4) stack.pop() stack[-1] len(stack) # 遍历 for val in stack: print(栈元素:, val)队列from collections import deque q deque([1, 2, 3]) # 用list初始化 # 入队、出队 q.append(4) q.popleft() q[0] len(q) # 遍历 for val in q: print(队列元素:, val)双向队列from collections import deque dq deque([1, 2, 3]) # 两端操作 dq.append(4) # 右侧入队 dq.appendleft(0) # 左侧入队 dq.pop() # 右侧出队 dq.popleft() # 左侧出队 len(dq) # 遍历 for val in dq: print(双向队列元素:, val)优先队列import heapq pq [] # 入堆 heapq.heappush(pq, 3) heapq.heappush(pq, 1) heapq.heappush(pq, 2) # 出堆 heapq.heappop(pq) # 遍历堆结构遍历不保证有序 for val in pq: print(优先队列内部元素:, val) # 已有列表初始化最小堆 nums [5, 2, 8, 1, 3, 7, 4] pq heapq.heapify(nums) # 堆顶 print(nums[0]) # 从小到大的顺序 sorted_nums [] while nums: sorted_nums .append(heapq.heappop(nums)) # 实际应用找前 K 个最小的元素 nums [9, 3, 7, 1, 5, 8, 2, 6, 4] # 返回最小的 K 个元素 ns heapq.nsmallest(3, nums) # 返回最大的 K 个元素 nl heapq.nlargest(3, nums)字典d {name: 小明, age: 18, city: 北京} # 增删改查 d[gender] 男 d[age] 20 del d[city] d[city] len(d) print(name in d) # 遍历键 for k in d.keys(): print(键:, k) # 遍历值 for v in d.values(): print(值:, v) # 遍历键值对 for k, v in d.items(): print(k, :, v) # 频率统计 text hello world freq {} for ch in text: # 如果 ch 不在字典中get 返回 0加 1 后就是 1 freq[ch] freq.get(ch, 0) 1集合# 直接创建 s {1, 2, 3, 4} # 列表创建自动去重 nums [1, 2, 2, 3, 3, 3] sl set(nums) # 增删 s.add(5) s.discard(2) s.remove(2) # 不存在会报错 # 集合运算 a {1,2,3} b {3,4,5} print(a b) # 交集 print(a | b) # 并集 print(a - b) # 差集 # 遍历 for val in s: print(集合元素:, val)数据结构符号 / 实现可变性核心操作遍历方式字符串str不可变索引、切片、split、strip、replacefor c in s元组()tuple不可变索引、count、indexfor item in t列表[]list可变append、pop、insert、sort、reversefor item in lst栈list可变append、popfor val in stack队列deque可变append、popleftfor val in q双向队列deque可变append、appendleft、pop、popleftfor val in dq优先队列heapq可变heappush、heappopfor val in pq字典{}dict可变[key]、get、keys、items、infor k,v in d.items()集合{}set可变add、discard、remove、交并差、infor val in s

更多文章