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

俄罗斯网站后缀龙海市城乡规划建设局网站

俄罗斯网站后缀,龙海市城乡规划建设局网站,深圳关键词首页排名,设计吧官网Python之哈希表-哈希表原理 集合Set 集合,简称集。由任意个元素构成的集体。高级语言都实现了这个非常重要的数据结构类型。Python中,它是可变的、无序的、不重复的元素的集合 初始化 set() -> new empty set objectset(iterable) -> new set …

Python之哈希表-哈希表原理

集合Set

  • 集合,简称集。由任意个元素构成的集体。高级语言都实现了这个非常重要的数据结构类型。
  • Python中,它是可变的、无序的、不重复的元素的集合

初始化

  • set() -> new empty set object
  • set(iterable) -> new set object

元素性质

  • 去重:在集合中,所有元素必须相异
  • 无序:因为无序,所以不可索引
  • 可哈希:Python集合中的元素必须可以hash,即元素都可以使用内建函数hash
  • 目前学过不可hash的类型有:list、set、bytearray
  • 可迭代:set中虽然元素不一样,但元素都可以迭代出来

增加

  • add(elem)
    • 增加一个元素到set中
    • 如果元素存在,什么都不做
  • update(*others)
    • 合并其他元素到set集合中来
    • 参数others必须是可迭代对象
    • 就地修改

删除

  • remove(elem)
    • 从set中移除一个元素
    • 元素不存在,抛出KeyError异常。为什么是KeyError?
  • discard(elem)
    • 从set中移除一个元素
    • 元素不存在,什么都不做
  • pop() -> item
    • 移除并返回任意的元素。为什么是任意元素?
    • 空集返回KeyError异常
  • clear()
    • 移除所有元素

修改

  • 集合类型没有修改。因为元素唯一。如果元素能够加入到集合中,说明它和别的元素不一样。
  • 所谓修改,其实就是把当前元素改成一个完全不同的元素,就是删除加入新元素。

索引

  • 非线性结构,不可索引。

set() # 空集
{}, type({}) # 空字典
# 返回结果:({}, dict)
set(range(5)), {1, 2, 'abc'}, set((1, 2, 3)), {*range(5), *[1, 2, 3]} 
# 集合 集合是去重的,根据此例体会一下。
# 返回结果:({0, 1, 2, 3, 4}, {1, 2, 'abc'}, {1, 2, 3}, {0, 1, 2, 3, 4})
{'1', 1, '1', 1, 2}, {1, (1,), 1, (1,)} 
# 集合是无序的 去重
# 返回结果:({'1', 1, 2}, {(1,), 1})
{1, *'abc', *(1, 2), *[1]}
# 不可哈希的可以解构
# 返回结果:{1, 2, 'a', 'b', 'c'}
{1, (1,), (), '', b'', None, True, False, range(5)}
# 集合中可放的值
# 返回结果:{'', (), (1,), 1, False, None, b'', range(0, 5)}
set(range(5))
# 这个是把range对象给set集合使用
# 返回结果:{0, 1, 2, 3, 4}
list(range(5))
# 这个是把range对象给list列表使用
# 返回结果:[0, 1, 2, 3, 4]
{range(5)}
# 这个得作用是集合中放了一个range对象,但是没有使用
# 返回结果:{range(0, 5)}
x = set()
x
# x等于一个空集
# 返回结果:set()
x.add(1)
x
# 集合中增加元素
# 返回结果:{1}
x.add('abc')
x
# 集合中增加元素
# 返回结果:{1, 'abc'}
x.add(1)
x
# 体会去重的概念
# 返回结果:{1, 'abc'}
x.update(range(3), 'abc')
x
# 相当于把括号中的元素都拿出来加入到x集合中
# 返回结果:{0, 1, 2, 'a', 'abc', 'b', 'c'}
x.update([1, 'abc', 2, 'xyz']) 
# x.update却成功的添加到x集合中,思考一下为什么,可以翻到最下方的报错中有一个报错是x.add报错。
x
# 返回结果:{0, 1, 2, 'a', 'abc', 'b', 'c', 'x', 'xyz'}
  • 因为add是把整个列表都加到集合中,因为列表不可哈希所以加不进去
  • update是把列表中的所有内容,依次拿出添加到x集合中,所以可以加入
hash(1), hash('abc')
# 判断能不能哈希,可以使用hash函数进行测试一下
# 返回结果:(1, -2803511482477406815)
x.remove('a')
x
# 删除
# 返回结果:{0, 1, 2, 'abc', 'b', 'c', 'x', 'xyz'}
x.clear()
# clear清空集合,慎用!!!
x.pop()
# 弹出
# 返回结果:0
x.discard(-1)
# discard 如果删除的值没有,不会报错
-1 in x
# -1在不在x中,返回值True或False
# 返回结果:False
'abc' in x
# 'abc'在不在x中,返回值True或False
# 返回结果:True

请添加图片描述


报错

{1, 'abc', (1, 2), [1]}
# 列表不可哈希
# 返回结果:TypeError: unhashable type: 'list'
{1, {}}
# 字典不可哈希
# 返回结果:TypeError: unhashable type: 'dict'
{{1}}
# 集合也不可哈希
# 返回结果:TypeError: unhashable type: 'set'
{{1}, [1], {}}
# 集合中不能放的元素
x.add([1, 'abc', 2, 'xyz'])
# x.add提示列表不可哈希
# 返回结果:TypeError: unhashable type: 'list'
hash([])
# 列表不可哈希
# 返回结果:TypeError: unhashable type: 'list'
x.remove(-1)
# 哈希表是无序的,不能使用-1,Key唯一的不重复的
# 返回结果:KeyError: -1
http://www.yayakq.cn/news/378584/

相关文章:

  • 动漫网站建设目的用J2ee怎么做视频网站
  • unn建站新网站怎么做seo优化
  • 自己的网站怎么做跳转佛山从事网站建设
  • vpn免流网站建设dedecms 网站迁移
  • 做视频网站资源采集最近发生的新闻大事
  • 中国企业网站开发怎么创办网站
  • 无锡网站开发网站如何做京东联盟
  • 网站的后缀名app和网站开发的成本
  • 利于seo的建站系统有哪些做dj音叉网站平台
  • 做网站需要参考书目书太原房产网站建设
  • 千龙网站建设wordpress 3.1 下载地址
  • 成都网站排名生客seo深圳网络优化公司
  • 沧州市网站龙海市邦策网站建设平台
  • 做网站的励志故事WordPress主题设置数据库
  • 拟定网站优化方案中煤第三建设集团网站
  • o2o网站建设怎么样网站建设 ui 企业网站
  • 怎么在濮阳网站做宣传腾讯企业邮箱手机号登录入口
  • 兴平市住房和城乡建设局门户网站东莞寮步二手车交易市场
  • 内蒙古做网站公司wordpress上传后不见了
  • .mom域名可以做网站吗标签化网站
  • 网站建设绿茶科技广州天拓做网站吗
  • 建设信用卡网银网站专科最吃香的十大专业
  • 网站注册怎么注销网站网页进口
  • 承德专业做网站的公司网站开发的公司名称
  • 做网站图片和文字字体侵权wordpress搭建邮箱
  • 外贸建站网站推广网站建设最新教程
  • 怎么自己搭建博客网站网络推广服务如何退费
  • 网站添加cms外贸商城网站模板
  • 销售网站建设品牌设计案例分析
  • 孝感英文网站建设WordPress如何快速排名