美文网首页
8 集合[python基础]

8 集合[python基础]

作者: 乱弹琴给 | 来源:发表于2019-12-21 16:10 被阅读0次

# 什么是集合?

集合(Set)是Python中的内置数据结构

集合可以看作是没有Value的字典

            {'张三','李四','王五','赵六','宋七','杨八'}

# 集合的特点

集合元素是无序的

集合元素不能重复

集合是可变的

集合允许数学运算 交集、并集、差集等

集合是分散存储的

# 集合的存储原理

集合hash()

张三478718923

李四890931281

王五372917891

赵六489034277

通过hash()把集合转换

内存地址数据

372917891王五

890931281李四

478718923张三

489034277赵六

给这个集合开辟一块内存,分散无序存储。

效率高,但会浪费空间

# 集合的创建

使用{}符号创建集合

            college1 = {'哲学','经济学','法学','教育学'}  //每一次运行 顺序都不同,因为生成的散列值不同。

使用set()函数创建集合

            college2 = set(["金融学","哲学","经济学","历史学","文学"])

使用set创建字符串集合

            college3 = set("中华人民共和国")   //会得到每一个字符的集合{"中","华".....}

# 空集合的创建

            college4 = set()   //不能用{},会生成字典

# 集合关系与数学运算

交集(intersection)

            c3 = college1.intersection(college2)   //交集,获取两个集合中重复的部分,并新建一个集合。

            college1.intersection_update(college2)  //交集,获取两个集合中重复的部分,并更新原集合。

并集(union)  

            c4 = college1.union(college2)  //并集,将两个集合所有元素合并,去重。

            union操作没有update

差集(difference)

            c5 = college1.difference(college2)  //差集,是指两个集合之间差异的部分。是以college1为基数的,单项的差集。

            c6 = college1.symmetric_difference(college2)  //双向差集

            difference 有update操作 difference_update\symmetric_difference_update

# 集合间的关系操作

            s1 = {1,2,3,4,5,6}

            s2 = {6,5,4,3,2,1}

            print(s1 == s2)   //结果为True

            s3 = {4,5,6,7}

            s4 = {1,2,3,4,5,6,7,8}

             print(s3.issubset(s4))  //结果为True   判断是否为子集   

             print(s4.issuperset(s3))  // 判断是否为父集

              s5 = {5}

                s6 = {1,3,5,7,9}

                s5.isdisjoint(s6)   //判断两个集合是否存在重复元素,返回True代表不存在,False代表存在。也可以用交集的办法判断。

# 操作集合元素(增删改查)

​集合的遍历

            college1 = {'哲学','经济学','法学','教育学'}

            for c in college1:

                print(c)

​判断元素是否存在

            print("哲学" in college1)   //返回True

​集合不支持按索引提取数据

新增数据

            college1.add("计算机学")   //添加已存在的会被忽略,一次只能添加一个

            college1.update(["生物学","工程学"])   //一次添加多个,可以是列表或元组

​集合不支持更新,只能删除后再增加

集合元素的删除

            college1.remove("生物学")   //删除不存在元素时会报错

            college1.discard("生物学")   //同样可以删除元素,遇到不存在元素时,则忽略删除操作。

# 三种内置生成式

##  生成式语法

        [被追加的数据 循环语句 循环或者判断语句] |{}  

​列表生成式

            lst1 = [  ]

            for i in range(10,20):

                lst.append(i*10)

           //可以用如下生成式生成列表

            lst2 = [i*10 for i in range(10,20)]

          //复杂一点的生成式

            lst3 = [i*10 for i in range(10,20) if i % 2 == 0]

            //相当于如下

            for i in range(10,20):

                if i % 2 == 0:

                    lst3.append( i * 10)

字典生成式

            lst5 = ['张三','李四','王五']

            dict1 = {i+1:lst5[i] for i in range(0,len(lst5))}

            print(dict1)

            //相当于

            for i in range(0,len(lst5)):

                dict[i+1] = lst5[i]

集合生成式

            set1 = {i*j for i in range(1,4) for j in range(1,4) if i == j}

            print(set1)

相关文章

  • 8 集合[python基础]

    # 什么是集合? 集合(Set)是Python中的内置数据结构 集合可以看作是没有Value的字典 {'张...

  • Python基础-集合

    Python基础-集合 1.定义集合(元素不能重复) 2.集合操作

  • Python: set实例透析

    Python基础文章集合请移步。 Python里的 set数据类型 set是无序unique值的集合,常用来去重,...

  • 基础·数据容器·列表&元组

    Python基础教程 类型 数据集合包括:列表,元组,字典 列表=========================...

  • 10.Python基础数据类型之集合

    Python基础数据类型之集合 集合(set)集合(set)是一个无序的、不重复元素序列,因此集合没有索引且没有重...

  • 2018-07-20Python(5)

    Python基础语法(5) 集合set 特点: 集合中的元素没有索引。也就是无法遍历取出. 集合中的元素是唯一的,...

  • python移除列表中的重复元素

    所谓基础不牢,地动山摇,咱们基础学完了,但是要温故而知新。 涉及知识点 python 遍历列表 python 集合...

  • 疯狂的Python-05(神奇赋值法)

    写给有基础的Python程序员,一些有趣的鲜为人知的Python特性集合 无论你是Python新手还是Python...

  • 第一阶段

    Python语言语法基础 字符串 字典 函数 模块 日期时间 集合容器

  • 字典和集合

    参考《Fluent Python》字典和集合 集合的本质是唯一元素的聚集,所以集合可以用来去重 集合也支持一些基础...

网友评论

      本文标题:8 集合[python基础]

      本文链接:https://www.haomeiwen.com/subject/wiygnctx.html