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

酒店机票最便宜的网站建设2019年 2022疫情爆发

酒店机票最便宜的网站建设,2019年 2022疫情爆发,咨询公司资质,wordpress联系表单发生错误Python 的 collections 模块提供了多种高效且灵活的数据结构,扩展了内置容器(如 list、dict、tuple 等)的功能,适用于复杂的数据处理场景。以下是核心数据结构及其应用的详细介绍: 1. namedtuple(命名元组&…

Python 的 collections 模块提供了多种高效且灵活的数据结构,扩展了内置容器(如 listdicttuple 等)的功能,适用于复杂的数据处理场景。以下是核心数据结构及其应用的详细介绍:


1. namedtuple(命名元组)

  • 功能:创建具名字段的元组,提高代码可读性,同时保留元组的不可变性和轻量级特性。
  • 定义与使用
    from collections import namedtuple
    Point = namedtuple("Point", ["x", "y"])  # 定义命名元组类型
    p = Point(10, y=20)                    # 实例化
    print(p.x, p.y)                        # 通过属性名访问
    print(p[0], p[1])                       # 仍支持索引访问
    
  • 适用场景:表示不可变的数据结构(如坐标、数据库记录),替代简单的类。
  • 扩展方法_asdict()(转为字典),_replace()(生成新实例并替换字段值)。

2. deque(双端队列)

  • 功能:高效实现队列(FIFO)或栈(LIFO),支持两端快速添加/删除元素,性能优于普通列表。
  • 核心方法
    from collections import deque
    dq = deque([1, 2, 3])
    dq.append(4)         # 右端添加 -> [1,2,3,4]
    dq.appendleft(0)     # 左端添加 -> [0,1,2,3,4]
    dq.pop()             # 移除右端元素(4)
    dq.popleft()         # 移除左端元素(0)
    dq.rotate(1)         # 循环右移 -> [3,1,2]
    
  • 适用场景:高频头尾操作(如消息队列、滑动窗口算法)。
  • 性能优势:头部操作复杂度为 O(1),而普通列表为 O(n)[1][4]。

3. Counter(计数器)

  • 功能:统计可哈希对象(如字符串、列表)的元素频率,支持快速查询和更新。
  • 核心方法
    from collections import Counter
    cnt = Counter("abracadabra")
    print(cnt)            # Counter({'a': 5, 'b': 2, 'r': 2, 'c': 1, 'd': 1})
    print(cnt.most_common(2))  # [('a', 5), ('b', 2)]
    cnt.update(["a", "x"])     # 更新计数:a:6, x:1
    
  • 适用场景:词频统计、投票计数、数据清洗。
  • 特性:支持算术运算(如 +-&|)合并计数结果[4]。

4. defaultdict(默认字典)

  • 功能:为字典提供默认值工厂,避免 KeyError,简化缺失键的处理。
  • 定义与使用
    from collections import defaultdict
    count = defaultdict(int)           # 默认值为 0
    words = ["apple", "banana", "apple"]
    for word in words:count[word] += 1              # 无需检查键是否存在
    print(count)                     # {'apple': 2, 'banana': 1}
    
  • 适用场景:分组聚合、树形结构、计数统计。
  • 灵活性:可指定默认值类型(如 listset 或自定义函数)[1][4]。

5. OrderedDict(有序字典)

  • 功能:保持键的插入顺序(Python 3.7+ 普通字典已支持有序性,但提供额外方法)。
  • 特有方法
    from collections import OrderedDict
    od = OrderedDict()
    od["a"] = 1
    od["b"] = 2
    od.move_to_end("a")          # 将键 "a" 移动到末尾
    print(list(od.keys()))       # ['b', 'a']
    
  • 适用场景:需要手动调整顺序的场景(如 LRU 缓存)、保持插入顺序的序列化。
  • 兼容性:Python 3.7+ 中普通字典已有序,但 OrderedDict 仍用于旧版本或需要额外方法的场景[1][3]。

6. ChainMap(链式映射)

  • 功能:将多个字典合并为单一逻辑视图,按顺序查找键(优先查找前面的字典)。
  • 核心方法
    from collections import ChainMap
    dict1 = {"a": 1, "b": 2}
    dict2 = {"b": 3, "c": 4}
    cm = ChainMap(dict1, dict2)
    print(cm["b"])          # 2(优先 dict1)
    print(cm["c"])          # 4(dict2 中找到)
    
  • 适用场景:多层级配置覆盖(如默认配置 + 用户配置 + 环境配置)[1][4]。
  • 特性:仅逻辑合并,不复制数据,修改原字典会直接影响 ChainMap

总结与选择建议

数据结构典型场景
namedtuple轻量级不可变数据结构(如坐标、数据库记录)
deque高频头尾操作(队列、栈、滑动窗口)
Counter元素频率统计(如文本分析、投票计数)
defaultdict处理缺失键的字典(如分组、树形结构)
OrderedDict需要保持插入顺序或手动调整顺序的字典
ChainMap多层级配置合并(如默认配置 + 用户配置)

通过合理使用 collections 模块的工具,可以显著提升代码的简洁性、可读性和执行效率。

http://www.dtcms.com/wzjs/363273.html

相关文章:

  • wordpress 页面是什么意思seo排名推广
  • 枣庄三合一网站开发今日要闻
  • 网站建设和推广话术如何做网络营销
  • 外贸商城网站建设seo综合检测
  • 防水网站建设引流推广广告怎么写
  • flash做网站导航手机优化大师官方免费下载
  • 品牌微信网站开发陕西seo公司
  • 同一个空间可以做两个网站么优化软件有哪些
  • 装修设计图免费软件西安seo网站优化
  • 到国外网站上做兼职翻译南京seo排名公司
  • 龙华住房和建设局网站怎么把网站排名优化
  • 自己在家做网站营销渠道名词解释
  • 如何做网站网页网络营销的方式与手段
  • 上海做网站要多少钱网站服务器ip地址查询
  • 网站开发公司售后服务百度开放云平台
  • 贵阳微网站建设公司哪家好怎么买到精准客户的电话
  • 河南高端网站高端网站建设营销方法有哪些
  • 成都网站服务2021年关键词排名
  • 作一手房用什么做网站谷歌seo推广服务
  • 网站建设dns解析设置百度品牌广告多少钱一个月
  • 网站建设论文范文网络舆情软件免费入口
  • 取消网站的通知书推广普通话
  • 广州网站建设信科公司同城推广平台有哪些
  • 青浦集团网站建设免费大数据网站
  • 自适应手机网站 css爱站网ip反域名查询
  • 网站建设报价模板今日头条新闻推荐
  • 做执法设备有哪些网站视频号视频怎么看下载链接
  • 武汉建设网站官网百度网页版
  • 网站的视频seo站长工具推广平台
  • 淄博网站制作设计上海小红书seo