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

用自己电脑做服务器 网站吗2023年5月最新疫情

用自己电脑做服务器 网站吗,2023年5月最新疫情,1688手工活外发加工网,国内最好的少儿编程机构排名“专业人士笔记”系列目录:创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!​zhuanlan.zhihu.com简述内置的Collections集合包提供了几种专门的、灵活的集合类型,它们提供了dict、list、tuple和set等一般集…

e42b00573b13d3d875ae09f5a8fc6501.png

“专业人士笔记”系列目录:

创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!​zhuanlan.zhihu.com
b817bdb2514bae3ba5bb089087449c6c.png

简述

内置的Collections集合包提供了几种专门的、灵活的集合类型,它们提供了dict、list、tuple和set等一般集合类型的更高性能的替代方案。模块还定义了抽象基类,这些抽象基类描述了不同类型的集合功能(如MutableSet和ItemsView)。

计数

Counter是一个dict子类,它允许你轻松地对对象进行计数

import collections
counts = collections.Counter([1,2,2,3])
print(counts)# Counter({2: 2, 1: 1, 3: 1})  输出字典,其中2出现了2次

一些更详细的用法:

单词计数:

import collections
collections.Counter('Happy Birthday')#Counter({'a': 2, 'p': 2, 'y': 2, 'i': 1, 'r': 1, 'B': 1, ' ': 1, 'H': 1, 'd': 1, 'h': 1, 't': 1})

词语计数:

import collections
collections.Counter('I am Sam Sam I am That Sam-I-am That Sam-I-am! I do not like that Sam-I-am'.split())#注意:上面使用split函数,将字符串按空格拆分成列表后,将列表作为参数传入则是词语计数
#Counter({'I': 3, 'Sam': 2, 'Sam-I-am': 2, 'That': 2, 'am': 2, 'do': 1, 'Sam-I-am!': 1, 'that': 1,'not': 1, 'like': 1})

顺序集合

在Python字典类型中,键的顺序是任意的:它们不受您添加它们的顺序的控制

collections.OrderedDict 提供保留键顺序的dictionary对象。OrderedDicts可以创建如下所示的一系列有序项(下面是集合列表) :

from collections import OrderedDict
d = OrderedDict([('foo', 5), ('bar', 6)])
print(d)#OrderedDict([('foo', 5), ('bar', 6)])d['baz'] = 7
print(d)
#OrderedDict([('foo', 5), ('bar', 6), ('baz', 7)])d['cc'] = 3
print(d)
#OrderedDict([('foo', 5), ('bar', 6), ('baz', 7), ('cc', 3)])

发现了吗,上面集合列表中的字典顺序,是按照你添加值的顺序排列的

所以,我们也可以完全先创建一个空的顺序集合,再一点一点添加值:

from collections import OrderedDict
o = OrderedDict()o['key1'] = "value1"
o['key2'] = "value2"print(o)#输出:OrderedDict([('key1', 'value1'), ('key2', 'value2')])

默认字典

defaultdict返回dict的一个子类,该子类为不存在的键提供一个默认值。参数应该是一个类,参数调用时返回这种类默认值。如果没有传递任何内容,则默认为None

import collections
state_capitals = collections.defaultdict(int)  #传递了int类,其默认值是0
print(state_capitals)#输出:defaultdict(<class 'int'>, {})

上面的代码返回了对defaultdict的引用,该引用将使用其默认值方法创建一个默认值为0的字典

import collections
state_capitals = collections.defaultdict(int)  #传递了int类,其默认值是0print(state_capitals['a'])  #访问了一个不存在的字典键#未报错,输出0
#如果前面不使用defaultdict,则这个字典访问不存在的键会报keyerror错误

命名元组

像这样使用namedtuple定义一个新的类型Person :

from collections import namedtuple
Person = namedtuple('Person', ['age', 'height', 'name'])

第二个参数是元组将拥有的属性列表。您也可以将这些属性作为空格或逗号分隔的字符串列出 :

from collections import namedtuple#下面几种方式定义都可以Person = namedtuple('Person', ['age', 'height', 'name'])Person = namedtuple('Person', 'age, height, name')Person = namedtuple('Person', 'age height name')

一旦定义,命名元组就可以通过使用必要的参数调用对象来实例化 :

from collections import namedtuple#三种定义方式
Person = namedtuple('Person', ['age', 'height', 'name'])Person = namedtuple('Person', 'age, height, name')Person = namedtuple('Person', 'age height name')#两种初始化方式
dave = Person(30, 178, 'Dave')
jack = Person(age=30, height=178, name='Jack S.')print(jack.age)# 30
print(jack.name)# 'Jack S.'

双端队列

Deques是堆栈和队列的泛化(名称发音类似“deck”,是双端队列的缩写)。deque支持在内存中有效的从deque任何一边附加值和弹出值, 并保障了线程安全性

其 在任何方向上都具有大致相同的O(1)性能。虽然list对象支持类似的操作,但list对于pop(0)和insert(0,v)操作会产生O(n)的内存移动成本

如果未指定maxlen或maxlen为None, deques可能会增长到任意长度。否则,deque被限制到指定的最大长度。一旦一个有限长度的deque满了,当添加新项时,会从另一端丢弃相应数量的项。有限长度的deque提供了类似于Unix中的尾部过滤器的功能。它们还可以用于跟踪事务和只有最近的活动才感兴趣数据池

from collections import deque#创建双端队列
d = deque('ghi')
for elem in d:print(elem.upper())#增加元素
d.append('j')
d.appendleft('f')
print(d)#删除元素
d.pop()
d.popleft()
print(d)#旋转队列
d.rotate(-1)
print(d)

链映射

其返回一个新的链映射对象,该对象具有多个映射。该对象将多个dict或其他映射分组在一起,以创建单个的、可更新的视图。链映射是管理嵌套上下文和覆盖的有用工具。

python世界中的一个例子是在Django的模板引擎中实现上下文类。它对于快速链接多个映射非常有用,因此可以将结果作为单个单元处理。它通常比创建新字典和运行多个update()调用快得多。

任何时候,只要需要一个快速查找值的链,而且链中可能有重复键且需要都保留的时候,就可以使用ChainMap

import collections#  定义至少有一些键重叠的两个字典 
dict1 = {'apple': 1, 'banana': 2}
dict2 = {'coconut': 1, 'date': 1, 'apple': 3}#  创建两个链映射,这些字典的顺序不同 
combined_dict = collections.ChainMap(dict1, dict2)
reverse_ordered_dict = collections.ChainMap(dict2, dict1)#打印链
print(combined_dict)  
# ChainMap({'apple': 1, 'banana': 2}, {'coconut': 1, 'date': 1, 'apple': 3})print(reverse_ordered_dict)
# ChainMap({'coconut': 1, 'date': 1, 'apple': 3}, {'apple': 1, 'banana': 2})#遍历链
for k, v in combined_dict.items():print(k, v)for k, v in reverse_ordered_dict.items():print(k, v)

以上代码均已通过python3云环境调试成功,请勿转载,谢谢

http://www.wooajung.com/news/34478.html

相关文章:

  • 网站建设太金手指六六二五深圳市龙华区
  • 网站无法收录天津seo排名扣费
  • 个人网站域名怎么起seo平台优化
  • 关于做芯片类招聘的网站软文写作平台
  • 网站制作 电子商城seo教程 seo之家
  • 邵东做网站的公司太原seo关键词排名优化
  • 深圳龙岗做网站公司哪家好关键词云图
  • 网站上传图片问题网络公关公司联系方式
  • 网站专题制作原则佣金高的推广平台
  • 网上做批发有哪些网站靠谱网站如何进行优化
  • 宜州设计公司百度网盘seo优化
  • 旅游网站 功能外链推广网站
  • 织梦后台怎么换网站模板百度竞价排名案例分析
  • 服务网络是什么意思天津seo优化
  • 使用webp的网站电脑优化软件推荐
  • 网站建设发好处广州新闻报道
  • 太平保险网站搜索引擎优化的作用
  • 网站建设是前端的吗郑州网络seo
  • 企业网站的开发背景武汉seo外包平台
  • 深圳装饰网站建设百度电脑版网址
  • 排版网站推荐如何发布自己的html网站
  • 又拍网站怎么做的国外引流推广软件
  • wordpress 图片等比例缩放如何做优化排名
  • 网站域名dns企业网络推广方法
  • 做app网站需要什么条件职业技能培训网上平台
  • 上海专业网站建设费百度搜索推广方案
  • 做网站对企业有什么好处全部列表支持安卓浏览器软件下载
  • 商洛市城乡建设局网站软文撰写公司
  • bootstrap网页模板源码seo快速排名上首页
  • behance设计网站 教程上海推广服务