【python基础】集合类型

集合类型:

  作用:  --> 关系运算(交集,并集,差集)

       --> 去重(有局限性)

定义方法:set()
linuxers = {1,1.1,‘a‘,(1,2,3)}    ##集合内的值,只能为不可变类型,比如int,str,float,tupleprint(type(linuxers))<class ‘set‘>

需要掌握:

1、集合的定义方法

定义方法类似于字典,{}内,以逗号分割,但不同于字典之处不是key:varual格式,集合内的元素一定是不可变类型

1     pythoners = set({‘alexdsb‘,‘egon‘,‘lxxdsb‘,‘oldboy‘,‘吴三江‘,‘张铁蛋‘})
2
3     print(pythoners)
4
5     pythoners = {‘alexdsb‘,‘egon‘,‘lxxdsb‘,‘oldboy‘,‘吴三江‘,‘张铁蛋‘}
6
7     print(pythoners)

2、集合的运算(&,-,|,^,)

例题:以下是报名python和linux的学员信息,请完成对一下两个集合的运算

   1.1、求既报名linux又包名python的学员有哪些=》即求两个集合体的共同部分,称之为交集
    print(pythoners & linuxers)
    print(pythoners.intersection(linuxers))

    1.2、求只报名python,没有报名linux的学员有哪些=》即集合pythoners减去linuxers,称之为差集
    print(pythoners - linuxers)
    print(pythoners.difference(linuxers))

    1.3、求只报名linux,没有报名python的学员有哪些
    print(linuxers - pythoners)
    print(linuxers.difference(pythoners))

    1.4 求老男孩所有报名的学生姓名->即求两个集合体的总和,称之为并集
    print(pythoners | linuxers)
    print(pythoners.union(linuxers))

    1.5 求没有同时报名两门课程的学生姓名->称之为对称差集
    print(pythoners ^ linuxers)
    print(pythoners.symmetric_difference(linuxers))

3、集合的成员运算(in / not in)

1     a = {1,2,3}
2     print(1 in a)
3     print(1 not in a)

4、集合的含于被含于的关系运算(>,>=,<=,<)

    a = {1,2,3}
    b = {1,2}

    print(a >= b)       ##a包含b
    print(b <= a)       ##b含于a
    print(b < a)
    print(a > b)

5、集合的去重以及集合去重的局限性

** 去重:去重是集合的特性

    a = {1,2,3,4,1,1}       ##去重会将1去除,只保留一个

    print(a)
    {1, 2, 3, 4}

局限性:

    1、不能保证原来的顺序(因为set是不依赖索引的,所以每次打印顺序不一样,所以集合是无序的)

    2、不能针对可变类型去重(list,dict等可变类型不能去重)

6、集合的内置方法(添加,删除)元素,add,update,pop,remove,discard

add 添加元素

    s={1,2,3}
    s.add(4)        ##在集合后面插入元素
    s.add(‘hello‘)
    print(s)   ##{1, 2, 3, 4, ‘hello‘}

update  添加元素

    s1={1,2,3,4,5}
    s1.update({3,4,5,6,7})      ##调用for循环逐个添加
    s1.update(‘hello‘)          ##调用for循环,添加h e l l o 字符串
    s1.add(‘aaa‘)               ##添加字符串‘aaa‘到s1
    print(s1)                   ##{1, 2, 3, 4, 5, 6, 7, ‘e‘, ‘l‘, ‘o‘, ‘h‘, ‘aaa‘}

pop     随机删除集合中的元素

    s = {1,2,3}
    s.pop()

remove  指定元素删除,不存在则报错

    s = {1,2,3}
    s.remove(1)     ##存在则删除
    s.remove(5)     ##不存在报错

discard 指定元素删除,不存在也不报错

    s = {1,2,3}
    s.discard(1)     ##存在则删除
    s.discard(5)     ##不存在也不报错

info.clear()        ##清空集合
info.copy()         ##复制一个集合

# 循环

    s={‘egon‘,‘alex‘,‘wxx‘,‘lxx‘}

    for item in s:
        print(item)

# 计算长度

    s={‘egon‘,‘alex‘,‘wxx‘,‘lxx‘}
    print(len(s))

去重的两种需求:

1,全部为不可变类型,并且去重后不要求顺序

    info = {1,1,2,3,2,‘yexinlei‘,2.1,‘aaa‘,(‘oldboy‘,‘egon‘)}
    info=set(info)
    print(info)

2,包含可变类型(list,dict)并且要求保证去重后保留顺序

info=[
    {‘name‘:‘egon‘,‘age‘:18},
    {‘name‘:‘alex‘,‘age‘:73},
    {‘name‘:‘egon‘,‘age‘:18},
    {‘name‘: ‘lxx‘, ‘age‘: 19},
    {‘name‘:‘egon‘,‘age‘:18},
    {‘name‘:‘lxx‘,‘age‘:19},
]

l=[]

for dic in info:
    if dic not in l:            ##判断不存在重复则添加
        l.append(dic)

info=l                          ##重新赋值给info
print(info)

set()

原文地址:https://www.cnblogs.com/swiki/p/9281862.html

时间: 2024-08-12 03:41:09

【python基础】集合类型的相关文章

python基础---集合类型(Sets)

集合类型(Sets) 集合对象是不同的(不可重复)hashable对象的无序集合.常见用法包括:成员关系测试.移除序列中的重复.以及科学计算,例如交集.并集.差分和对称差分.通俗点来说,集合是一个无序不重复元素的数据集,其基本功能是进行成员关系测试和消除重复元素. 目前有两种内置的集合类型:set 和 frozenset.set类型是可变的--可以使用add() 和 remove()等方法更改其内容.由于它是可变的,它没有hash值,因此它不能被当做字典的键值或另一集合的元素.frozenset

python学习笔记-(七)python基础--集合、文件操作&amp;函数

本节内容 1.集合操作 2.文件操作 3.字符编码与转码 4.函数操作 1.集合操作 集合是一个无序的.不重复的数据组合: 1.1 常用操作 它的作用是: 1)自动去重:列表变成集合,自动去重: 1 2 3 4 >>> list_1 = [1,4,4,5,6,7,9,10] >>> list_1 =set(list_1) >>> print(list_1) {1, 4, 5, 6, 7, 9, 10} 2)关系测试:测试两组数据之间的关系,交集.并集.

python基础-集合

1.声明: 集合(set)是一个无序的不重复元素序列. 可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典. 创建格式: parame = {value01,value02,...} #可以声明不同类型元素 或者 set(value) #一般为字符串.列表和元组,不能为数字.如果是字符串就表示只能声明同种类型元素 2. '''集合中增加元素,有两种方法 ''' # s.add(x) 方法,一次只能增加

python基础-集合小结

Python-基础-集合小结 集合 简介 声明 常用操作 成员关系 新增删除 集合间操作 其他 补充 集合 简介 python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. sets 支持 x in set, len(set), 和 for x in set. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算. 作为一个无序的集合,sets

python基础-----集合与函数

字符串 数字 字典 列表 元组 可变不可变: 1.可变:列表.字典 2.不可变:字符串.数字.元组 访问顺序: 1.直接访问:数字 2.顺序访问:字符串,列表,元组 3.映射:字典 存放元素个数: 容器类型:列表,元组,字典 原子:数字,字符串 #集合 1.不同元素组成 2.无序 3.集合中元素必须是不可变类型(字符串,数字,元组) #添加    add #  随机删  pop #   指定删    remove           (删除元素不产在会报错) #discard    (删除元素不

python 基础---集合

集合(set):可变的数据类型,他里面的元素必须是不可变的数据类型,无序,不重复.{} 1 set1 = set({1,2,3}) 2 print(set1) 3 4 #增 add,update 5 set1 = {'alex','wusir','ritian','egon','barry'} 6 set1.add('女神') 7 print(set1) #无序 8 #{'女神', 'egon', 'barry', 'wusir', 'alex', 'ritian'} 9 10 set1.upd

python基础_类型_tuple

#tuple 元祖,这个没什么特别的,和list差不多,不能删除,不能增加元素,其他功能差不多 #元祖用圆括号扩起来,逗号分隔 a = ('a','b','c') #这玩意一般会用来排除重复,还是很好用的 a = ['a', 'b', 'c', 'a'] list(set(a)) #把list转成tuple再转回来,结果是['a', 'c', 'b'] #这个没什么可说的,也不知道说什么,以后用到再解释把 原文地址:https://www.cnblogs.com/xiu123/p/8283389

python基础_类型_dict

#dict字典,其实与其叫字典不如叫key-value更合适,不知道这个名是怎么来的,这个可以用来搞用户名和密码,不过搞这个不用数据库是不是显得太low了 #用花括号{}扩起来,逗号分隔每个元素,每个元素必须有key和value,key和value用冒号分隔 a = {'a':1,'b':2} #'a','b'是key,1,2是value a.get('a') #获取key对应的value,结果是1 a.keys() #得到字典中全部的key,结果是['a', 'b'],一个list,多智能!多

2015/9/4 Python基础(8):映射和集合类型

Python里唯一的映射类型是字典.映射类型对象里,hash值(key)和指向的对象(值)是一对多的关系.字典对象是可变的,这一点上很像列表,它也可以存储任意个数任意类型的Python对象,其中包括容器类型.字典类型和序列类型的区别是存储和访问数据的方式不同.序列类型只用数字类型的键(从序列开始按数值顺序索引.)映射类型的键(key)可以是其他的对象类型(一般是字符串),映射类型的键直接或间接地和存储的数据值相关联.而在映射类型中,数据是无序排列的. 一个字典条目的语法格式是 键:值. 多条字典