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

网站的友情连接怎么做百度获客平台怎么收费的

网站的友情连接怎么做,百度获客平台怎么收费的,陕西省建设网证件查询,乐清网站建设乐清网站设计Python 的扩展数据类型是对内置数据类型的增强,旨在解决特定需求,提供更高级的功能。我们来看一些常见的扩展数据类型及其原理、用途,并通过示例逐步讲解。 1. collections.namedtuple namedtuple 是增强的元组,允许用名称访问元…

Python 的扩展数据类型是对内置数据类型的增强,旨在解决特定需求,提供更高级的功能。我们来看一些常见的扩展数据类型及其原理、用途,并通过示例逐步讲解。

1. collections.namedtuple

namedtuple 是增强的元组,允许用名称访问元素,增加代码可读性。

原理:它扩展了普通元组,通过名称而不是索引来访问元素。内部实际上还是使用元组存储数据,但通过动态生成类的方式增加了属性名。

场景:适合用于结构化数据存储,如数据库查询结果、坐标、RGB颜色值等。

示例

from collections import namedtuple# 定义一个名称为Point的 namedtuple
Point = namedtuple('Point', ['x', 'y'])p1 = Point(10, 20)
print(p1.x)  # 10
print(p1.y)  # 20

相比普通元组,它的可读性和易维护性都增强了:

p = (10, 20)  # 普通元组
print(p[0])   # 10, 使用索引访问,不直观

2. collections.defaultdict

defaultdict 是字典的扩展,可以指定一个默认工厂函数,当访问不存在的键时,会自动生成值。

原理:通过 __missing__() 方法处理缺失的键,调用默认工厂函数生成值。默认工厂函数可以是 intlist 等。

场景:适用于需要频繁初始化新键的场景,如统计、聚合等。

示例

from collections import defaultdict# 默认工厂函数为 list,初始化新键时返回空列表
dd = defaultdict(list)
dd['fruits'].append('apple')
print(dd)  # {'fruits': ['apple']}

如果使用普通字典会抛出 KeyError:

d = {}
# d['fruits'].append('apple')  # 抛出KeyError

3. collections.Counter

Counter 是用于计数的字典子类,适合用于频率统计。

原理:内部通过字典实现键值对,值表示元素出现的次数。

场景:适合统计元素频次,如统计单词、字符、事件等。

示例

from collections import Counterwords = ['apple', 'banana', 'apple', 'orange', 'banana', 'apple']
word_count = Counter(words)
print(word_count)  # Counter({'apple': 3, 'banana': 2, 'orange': 1})

你可以直接用 Counter 对字符串进行统计:

text = "hello world"
char_count = Counter(text)
print(char_count)  # Counter({'l': 3, 'o': 2, 'h': 1, 'e': 1, ' ': 1, 'w': 1, 'r': 1, 'd': 1})

4. collections.deque

deque 是双向队列,支持从两端高效插入和删除。

原理:内部使用双向链表实现,比普通列表 list 在两端插入删除更快。

场景:适用于队列、栈等需要快速操作两端的场景。

示例

from collections import dequedq = deque([1, 2, 3])
dq.append(4)  # 在右边添加
dq.appendleft(0)  # 在左边添加
print(dq)  # deque([0, 1, 2, 3, 4])

list 比较:

lst = [1, 2, 3]
lst.insert(0, 0)  # 左边插入操作效率较低,deque 更优

5. collections.OrderedDict

OrderedDict 是保留插入顺序的字典子类。

原理:普通字典在 Python 3.7+ 版本中已经默认保持插入顺序,但 OrderedDict 在老版本中也提供了这种功能,并增加了 move_to_end 等方法。

场景:需要保证键值对插入顺序的场景,如处理 LRU 缓存等。

示例

from collections import OrderedDictod = OrderedDict()
od['a'] = 1
od['b'] = 2
od['c'] = 3
print(od)  # OrderedDict([('a', 1), ('b', 2), ('c', 3)])

6. collections.ChainMap

ChainMap 用于将多个字典组合成一个视图。

原理:它不会复制字典,而是动态构建一个视图,从多个字典中查找键。

场景:适用于需要在多个上下文(如局部和全局)中查找变量的场景。

示例

from collections import ChainMapdict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
chain = ChainMap(dict1, dict2)
print(chain['b'])  # 2, 优先返回第一个字典中的值

7. enum.Enum

Enum 是枚举类型,允许定义一组常量,并使用名称来引用它们。

原理:枚举类通过 enum 模块实现,赋予一组有意义的常量名称,增强代码的可读性。

场景:适合定义一组固定的常量值,如颜色、状态、方向等。

示例

from enum import Enumclass Color(Enum):RED = 1GREEN = 2BLUE = 3print(Color.RED)  # Color.RED
print(Color.RED.value)  # 1

总结

数据类型原理适用场景示例
namedtuple具名元组,使用名称访问结构化数据存储Point = namedtuple('Point', ['x', 'y'])
defaultdict自动初始化键值需要初始化键的字典操作dd = defaultdict(list)
Counter计数器统计频次word_count = Counter(words)
deque双向队列,快速插入删除栈、队列实现dq = deque([1, 2, 3])
OrderedDict保留插入顺序的字典LRU 缓存实现od = OrderedDict()
ChainMap多个字典的视图变量上下文查找chain = ChainMap(dict1, dict2)
Enum枚举类型,定义常量常量定义,如颜色、状态等Color.RED

这些扩展类型在处理特定问题时极为有用,它们可以提高代码的可读性、效率,并减少出错的可能。每个类型都为特定场景提供了优化方案,使代码更具表现力和清晰度。

http://www.ds6.com.cn/news/37289.html

相关文章:

  • anker 网站谁做的互联网营销师培训多少钱
  • 网站开发公司挣钱吗数据分析师35岁以后怎么办
  • 模板建网站费用seo主要是指优化
  • 企业网站和信息化建设制度免费申请网站com域名
  • 深圳哪里网站制作又一病毒来了比新冠可怕
  • 跨境电商网站如何做推广知识营销成功案例介绍
  • 如何建立一家公司网站营销型网站建设费用
  • 如果做好招聘网站建设上海seo网络优化
  • 微信公众号可以自动导入wordpress360优化大师app
  • 百度做的网站字体侵权中央电视台一套广告价目表
  • 做网站推广每天加班福州seo博客
  • 嘉兴装修公司做网站网站推广技巧
  • 电子商务网站建设的风险分析seo专员工资一般多少
  • 网站建设功能需求chinaz站长素材
  • 作一个网站要多少钱网站关键词优化建议
  • 湛江自助建站模板发布信息的免费平台有哪些
  • 做国外网站的零售南京百度推广
  • 喊人做网站需要注意些什么怎样制作网页设计
  • 重庆璧山网站建设杭州百度推广
  • 在国外的网站做推广方案电销系统
  • 建网站多少钱建个网站需要怎么做搜索引擎哪个好
  • 济南网站优化推广买卖友情链接
  • wordpress自定义登录界面seo教程seo教程
  • 无锡品牌学会网站建设北京seo优化厂家
  • 新手网站怎么做站长联盟网上赚钱店铺推广软文案例
  • 服务器网站 都被做跳转seo培训费用
  • 上海制造网站公司搜索引擎营销的6种方式
  • 网站与网页的区别百度指数怎么提升
  • 扶贫工作网站建设方案seo零基础教学视频
  • 做期货的新闻网站管理方面的培训课程