当前位置: 首页 > news >正文

宝安专业手机网站设计公司wordpress页面发布

宝安专业手机网站设计公司,wordpress页面发布,企业如何做网站外包多少钱,wordpress页面宽度改为全屏今天我们将深入探讨 Python 中常用的数据结构#xff0c;帮助你从基础到精通。每种数据结构都有其独特的特点和适用场景#xff0c;通过实际代码示例和生活中的比喻#xff0c;让你更容易理解这些概念。 学习数据结构的三个阶段 1、掌握基本用法#xff1a;使用这些数据结…今天我们将深入探讨 Python 中常用的数据结构帮助你从基础到精通。每种数据结构都有其独特的特点和适用场景通过实际代码示例和生活中的比喻让你更容易理解这些概念。 学习数据结构的三个阶段 1、掌握基本用法使用这些数据结构解决一些基本问题。 2、应用场景选择知道在何种场景下选用哪种数据结构。 3、深入理解实现了解内置数据结构的源码实现并将其与相关算法知识联系起来提升编程能力。 下面逐一介绍这 10 种常用的数据结构。 1. List (列表) 基本用法 list 是 Python 中最基本的数据结构允许存储多个值且支持动态大小。 # 创建一个列表 fruits  [apple, banana, cherry] print(fruits[0])  # 输出apple# 添加元素 fruits.append(orange) print(fruits)  # 输出[apple, banana, cherry, orange]# 修改元素 fruits[1]  kiwi print(fruits)  # 输出[apple, kiwi, cherry, orange]# 删除元素 fruits.remove(cherry) print(fruits)  # 输出[apple, kiwi, orange] 使用场景 适合频繁查询和修改例如在需要按索引访问元素时list 的性能优越。 不适合频繁插入和删除特别是在开头插入或删除时因为这样会导致后面的元素都要移动。 实现原理 list 底层是动态数组初始状态下无需指定长度。当插入元素超过初始容量时会进行扩容通常是以两倍的方式增加大小。删除操作尤其在列表开头执行时由于涉及大量元素的位移因此时间复杂度为 O(n)。 2. Tuple (元组) 基本用法 tuple 是一种不可变的序列一旦创建便无法修改。 # 创建一个元组 coordinates  (10, 20) print(coordinates[0])  # 输出10# 元组解包 x, y  coordinates print(x, y)  # 输出10 20 使用场景 确保数据不被修改如果确定对象不会被修改比如坐标可以使用元组。 节省内存由于元组的不可变性Python 在内存管理上更高效。 from sys import getsizeof print(getsizeof(list()))  # 输出72 print(getsizeof(tuple()))  # 输出56 实现原理 tuple 是一种静态数组不支持动态扩展其存储方式相较于 list 更加紧凑因此在同等条件下占用的内存更少。 3. Set (集合) 基本用法 set 是一种无序且不重复的集合主要用于去重和集合运算。 # 创建一个集合 a  [3, 2, 5, 2, 5, 3] unique_values  set(a) print(unique_values)  # 输出{2, 3, 5}# 集合操作 b  {3, 4, 6, 2} intersection  unique_values.intersection(b)  # 求交集 print(intersection)  # 输出{2, 3} 使用场景 去除重复元素例如统计购物车中的唯一商品。 快速查找适合快速判断某个元素是否存在。 实现原理 set 通过哈希表实现采用哈希函数将元素映射到固定的索引增删查操作平均时间复杂度为 O(1)因此效率极高。 4. Dict (字典) 基本用法 dict 是基于键-值对数据结构广泛用于数据存储和检索。 # 创建字典 d  {a: 1, b: 2} print(d[a])  # 输出1# 添加元素 d[c]  3 print(d)  # 输出{a: 1, b: 2, c: 3}# 修改元素 d[b]  5 print(d)  # 输出{a: 1, b: 5, c: 3}# 删除元素 del d[a] print(d)  # 输出{b: 5, c: 3} 使用场景 高效查询适合需要快速查找的场景如用户信息存储。 统计数据比如计算字符串中字符出现次数的场景。 text  hello world count_dict  {} for char in text:count_dict[char]  count_dict.get(char, 0)  1 print(count_dict)  # 输出{h: 1, e: 1, l: 3, o: 2,  : 1, w: 1, r: 1, d: 1} 实现原理 dict 实际上是哈希表实现基于键值对存储数据查找、插入和删除操作的平均时间复杂度是 O(1)。不过由于哈希表的设计字典在内存上相对消耗较大。 5. Deque (双端队列) 基本用法 deque 是双端队列支持从左右两边高效地添加和删除元素。 from collections import deque# 创建一个双端队列 d  deque([3, 2, 4]) d.appendleft(1)  # 从左侧添加元素 print(d)  # 输出deque([1, 3, 2, 4])# 从右侧添加元素 d.append(5) print(d)  # 输出deque([1, 3, 2, 4, 5])# 从左侧删除元素 d.popleft() print(d)  # 输出deque([3, 2, 4, 5]) 使用场景 需要频繁在两端进行操作的场景如任务调度、回溯算法等。 实现原理 deque 是一个双向链表因此在两端进行操作时时间复杂度都是 O(1)。它内部维护了一个数组和链表的数据结构使得存取操作灵活且高效。 6. Counter (计数器) 基本用法 Counter 是用于计数的容器可以轻松统计元素出现的频率。 from collections import Counter# 创建 Counter c  Counter([apple, orange, apple, banana]) print(c)  # 输出Counter({apple: 2, orange: 1, banana: 1})# 获取最常见的元素 most_common  c.most_common(2)  # 前两个常见元素 print(most_common)  # 输出[(apple, 2), (orange, 1)] 使用场景 统计频次分析文本数据、用户行为等找出最常见的项。 实现原理 Counter 继承自 dict其实现简单明了将元素作为键出现的次数作为值方便快速统计和查询。 7. OrderedDict (有序字典) 基本用法 OrderedDict 是一个保持插入顺序的字典。 from collections import OrderedDictod  OrderedDict() od[a]  1 od[b]  2 od[c]  3for k, v in od.items():print(k, v)  # 输出a 1, b 2, c 3 使用场景 需要保持元素插入顺序的场景如任务调度、配置文件解析等。 实现原理 OrderedDict 内部维护了一个双向链表来记录元素的插入顺序同时还能保证 O(1) 的插入、删除和查找效率。 8. Heapq (堆队列) 基本用法 heapq 提供了堆队列算法支持高效的优先级队列实现。 import heapqa  [3, 1, 4, 2] heapq.heapify(a)  # 建堆 print(a[0])  # 输出1最小元素# 获取前 3 个最大元素 largest  heapq.nlargest(3, a) print(largest)  # 输出[4, 3, 2]# 获取前 3 个最小元素 smallest  heapq.nsmallest(3, a) print(smallest)  # 输出[1, 2, 3] 使用场景 需要经常获取最小或最大值的场景如实时数据处理、任务调度等。 实现原理 堆是一种特殊的完全二叉树其中父节点的值小于子节点最小堆。heapq 模块使用数组实现堆能够很方便地维持堆的性质。 9. Defaultdict (默认字典) 基本用法 defaultdict 是一种带默认值的字典避免了键不存在时的 KeyError。 from collections import defaultdictd  defaultdict(int)  # 默认值为 0 d[apple]  1 d[banana]  2 print(d)  # 输出defaultdict(class int, {apple: 1, banana: 2})# 添加列表作为默认值 dd  defaultdict(list) words  [book, nice, great, book] for i, word in enumerate(words):dd[word].append(i) print(dd)  # 输出defaultdict(class list, {book: [0, 3], nice: [1], great: [2]}) 使用场景 适合需要自动初始化的字典如频率统计、分组归类等场景。 实现原理 defaultdict 是对 dict 的扩展当访问一个未定义的键时会调用默认工厂函数生成一个默认值避免了显式的检查。 10. ChainMap (链式映射) 基本用法 ChainMap 用于将多个字典组合为一个字典视图支持同时查找。 from collections import ChainMapd1  {a: 1, b: 2} d2  {b: 3, c: 4} cm  ChainMap(d1, d2)print(cm[b])  # 输出2取自 d1 print(cm[c])  # 输出4取自 d2# 修改键值对 cm[b]  5 print(d1)  # 输出{a: 1, b: 5}, d1 被修改 使用场景 合并多个字典并希望同步更改的场景如配置文件管理、环境变量设置等。 实现原理 ChainMap 将多个字典视为一个单一的映射每次查找首先会检查第一个字典如果没有找到再查找下一个这使得多个字典的合并变得简单而高效。 总结 本文详细介绍了 Python 中的 10 种常用数据结构并结合了代码示例和实际场景解析希望能帮助读者加深对这些数据结构的理解。在实际开发中合理选择数据结构能够显著提升代码的效率和可读性。如果觉得这篇文章对你有帮助请转发、点赞或收藏以支持我们继续原创
http://www.tj-hxxt.cn/news/231250.html

相关文章:

  • 旅游网站源码unity 做网站
  • 类似于美团的网站怎么做馆陶企业做网站推广
  • 易书网上书城网站建设方案厦门微信网站开发
  • 网站搭建策划书网站地图可以自己做么
  • 中小型网站建设与管理总结游戏网站建设与策划书
  • 前端做网站一般用什么框架二维码制作工具
  • 买网站去哪买WordPress图片方案
  • 景点介绍网站模板宁波做网站优化多少钱
  • 学做系统的网站用插件做网站
  • 百度收录网站多久旺道seo优化
  • 网站开发语言检测免费做封面网站
  • org是国外的网站吗手机营销软件
  • 如何做局域网网站郑州seo优化
  • 湖北网站建设的释义网站建设龙华
  • 懂得做网站还可以做什么兼职建设工程司法解释(二)
  • 做网站获流量平面设计学习
  • 用vs做网站表格向上居中网站分页导航
  • 优秀网站网址有域名和主机怎么做网站
  • 青岛网站建设大全内蒙古头条新闻发布信息
  • 手把手教你做网站视频沧州网站优化价格
  • 国外设计网站参考福州seo排名外包
  • 对ui设计的理解和认识seo服务公司上海
  • 建设网站需要多少钱济南兴田德润地址云虚拟主机和云服务器有什么区别
  • 什么是网站托管外贸网站开发多少钱
  • 网站制作教程一般地建网络大都会app最新版本下载
  • 行业网站建设内容河北网站建设业务
  • 网站logo如何修改如何建设网站公司
  • 婺源做网站wordpress主题模板教程
  • 蒙古文网站建设汇报wordpress sql注入
  • 工作室 网站贵阳企业网站设计制作