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

自适应网站m域名必须做301免费网页在线客服系统代码

自适应网站m域名必须做301,免费网页在线客服系统代码,课堂阵地建设网站,南昌网站定制目录 一、集合的介绍与创建二、集合的存储原理三、元素的修改1. 添加元素2. 删除元素 四、集合的运算五、集合的判定 一、集合的介绍与创建 集合(set),一种可变、无序、不重复的数据结构,由大括号{}内、用逗号分隔的一组元素组成。…

目录

  • 一、集合的介绍与创建
  • 二、集合的存储原理
  • 三、元素的修改
    • 1. 添加元素
    • 2. 删除元素
  • 四、集合的运算
  • 五、集合的判定

一、集合的介绍与创建

  集合set),一种可变、无序、不重复的数据结构,由大括号{}内、用逗号分隔的一组元素组成。

  集合的元素是可变的,即,它支持元素的引用的直接修改,并有相应的操作函数。

  与同为组合的序列不同,集合的元素是无序的。这意味着元素的顺序与其添加的顺序无关,并且元素也不再支持索引访问
  集合的访问仅可通过组合的通用操作进行,如:for循环遍历、成员运算。(见第三篇和第七篇)

  集合的元素是不重复的,也就是说,集合可自动对内部的元素进行去重处理。

  与序列同理,集合同样有赋值创建引用创建,对应类似的函数set()。此外,类似于列表生成式(见第六篇),还支持集合生成(推导)式

# 直接创建
set_ = {1, 2, 3}
print(set_)   # {1, 2, 3}# 引用创建
set_ = set([1, 2, 3])
print(set_)   # {1, 2, 3}# 空集
set_ = set()
print(set_)     # set()# 集合生成式
set_ = {i**2 for i in range(10) if i%2 == 0}
print(set_)     # {0, 64, 4, 36, 16}


二、集合的存储原理

  集合通过哈希表来实现存储,即使用散列函数将元素映射到表中的位置。

  元素的地址会通过哈希函数计算得到一个定长数字,该数字称为哈希值散列值。而哈希表是一种根据键的哈希值直接访问存储位置的数据结构,也称为散列表

  不同元素的哈希值可能相同,这就是哈希冲突。当发生冲突时,系统将元素添加到哈希桶的尾部,使其成为链表的节点。

  集合的元素不会重复,是因为哈希表的结构会使得相同元素的会映射到同一地址。

三、元素的修改

1. 添加元素

  • add(element):添加一个元素
  • update(iterable):添加一个组合内的元素
set_ = set()# 单个添加
set_.add('num')
print(set_)     # {'num'}# 多个添加
set_.update(range(5))
print(set_)     # {0, 1, 2, 3, 4, 'num'}


2. 删除元素

  • discard(element):删除一个指定元素
  • remove(element):删除一个指定元素(见第六篇)
  • pop():删除一个任意元素(见第六篇)
  • clear()清空元素(见第六篇)

  后三个函数同样适用于列表的元素删除,语法格式与集合相似,但缺失索引后,其功能范围有所变化。

  其中,pop()“任意” 是与哈希值有关的伪随机机制。

set_ = set(range(5))   # {0, 1, 2, 3, 4}# 定向删除
set_.discard(0)
print(set_)     # {1, 2, 3, 4}
set_.remove(1)
print(set_)     # {2, 3, 4}# 不定向删除
set_.pop()
print(set_)     # {3, 4}# 清空
set_.clear()
print(set_)     # set()


四、集合的运算

  • set1.intersection(set2)运算,对应运算符&,即set1 & set2
  • set1.union(set2)运算,对应运算符|,即set1 | set2
  • set1.difference(set2)运算,对应运算符-,即set1 - set2
  • set1.symmetric_difference(set2)对称差运算

  其中,并运算可用于元素的添加,区别在于:集合的运算返回的是一个新的集合。

set1 = {'c', 'a', 't'}
set2 = {'h', 'a', 't'}# 取交
print(set1.intersection(set2))          # {'t', 'a'}
print(set1 & set2)# 取并
print(set1.union(set2))                 # {'t', 'c', 'h', 'a'}
print(set1 | set2)# 取差:从 set1 中去掉 set1&set2 的元素
print(set1.difference(set2))            # {'c'}
print(set1 - set2)# 对称取差:从 set1|set2 中去掉 set1&set2 的元素
print(set1.symmetric_difference(set2))  # {'c', 'h'}
print((set1 | set2) - (set1 & set2))# 地址更改
print(id(set1))                 # 2357217208448
print(id(set2))                 # 2357217209344
print(id(set1.union(set2)))     # 2357217208672


五、集合的判定

  • set1.isdisjoint(set2):判断两集是否存在相同元素
  • set1.issubset(set2):判断set1是否为set2子集
  • set1.issuperset(set2):判断set1是否为set2超集

  以上函数的返回值类型为布尔

set1 = set('apple')
set2 = set('app')# 无共同元素为真
print(set1.isdisjoint(set2))    # False
# set2 Ↄ set1 为真
print(set1.issubset(set2))      # False
# set1 Ↄ set2 为真
print(set1.issuperset(set2))    # True
http://www.mmbaike.com/news/38053.html

相关文章:

  • 营业推广方式seo策略主要包括
  • 图库素材网站宁波网络推广产品服务
  • 做qq空间的网站淘宝引流推广平台
  • wordpress商城平台邯郸seo
  • b2c购物网站建设最新消息新闻头条
  • 一个公司网站后台怎么做微信crm
  • 淄博网站建设哪家好百度seo优化技巧
  • 整人做我女朋友网站不受限制的搜索浏览器
  • 为什么网站有不同的扩展名青岛谷歌推广
  • 自己做网站销售上海seo服务
  • 手机网站建设定制seo网络营销招聘
  • 佛山做网站制作长春疫情最新消息
  • 西安东郊做网站十大成功营销策划案例
  • c语言做的网站免费google账号注册入口
  • 英国有哪些做折扣的网站有哪些推广如何做网上引流
  • web扁平化风格网站十大免费cms建站系统介绍
  • 自己做的网站二维码怎么做的最近发生的新闻
  • 网站设计的论文seo网站推广优化
  • 网站被iframe怎么做网上销售
  • 为个人网站做微信服务号国内做网站比较好的公司
  • wordpress后台文章自定义字段面板seo外链怎么做
  • 餐厅网站开发背景一个完整的产品运营方案
  • 天津网络推广培训seo接单平台有哪些
  • 日韩设计网站网络营销现状分析
  • 网站内页的设计百度seo推广价格
  • 为公益组织做网站东莞seo软件
  • 迅雷之家是迅雷做的网站吗短视频营销策划方案
  • 网站建设的报价为什么不同排名软件下载
  • 快速做网站视频优化清理大师
  • 建一个电商网站要多少钱东莞seo优化公司