数据类型之集合 set &运算关系

1.集合 set

    用途:关系运算、去重

    定义:{ }内用逗号分隔开的多个元素,每个元素都必需是不可变的类型

        强调;

            1.集合类元素都必需是不可变类型

            2.集合内的元素是无序的 ,所以没有索引

            3.集合内的元素不能重复

        sed={1,2,‘a’}

        print(sed={1,2,{“a”:1}})  直接报错

         s={1,'a','hello',(1,2,3),4}
             for item in s:

                 print(item)                每次循环结果顺序错乱

            s={(1,2,3),(1,2,3),'a','b','a'}
                     print(s)                            自动删除重复的元素

        s=set('hello')
             print(s)                            顺序错乱

 单纯的用集合去重,需要注意的问题是
1    去重的目标所包含的值必须都为不可变类型

2、去重的结果会打乱原来的顺序

常用操作+内置的方法

        s1={1,2,3,4,5}
        s1.add(6)                                                 
 #集合增加元素
        print(s1)

1.长度 len 

2.循环 for

3.判断 in 和not in

4. 并集 |

print(pythoners | linuxers)                    显示两者索引元素,去除重复的元素
print(pythoners.union(linuxers))

5.交集  &

print(pythoners & linuxers)                                显示相同的元素

print(pythoners.intersection(linuxers))

6.差集 -

print(pythoners - linuxers)                                            删除相同的元素
print(pythoners.difference(linuxers))

7.对称差集 ^

 print(pythoners ^ linuxers)                                                  删除相同元素,显示两者的元素

print(pythoners.symmetric_difference(linuxers)

8. 等于 ==

9.父集 (包含关系)    > >=

s1={1,2,3,4,5}
s2={1,2,3}
print(s1 > s2) # s1包含s2
print(s1.issuperset(s2))                                   判断父集

 

10.子集 (被包含的关系)  < <=       isdisjoint判断是否无交集           

print(s2.issubset(s1))                                       判断子集

 print(s1.isdisjoint(s2))                                  判断是否无交集

 

11.更新=增加集合       update                     向集合里面增加集合

s1.update({4,7,8,9})

 

 print(s1)

12.删除            remove  pop discard 
# res=s1.pop()
# print(res)

# res=s1.remove(4)
# print(res)

 

# print(s1)

s1.discard(7)          # 即便要删除的元素不存在也不会报错

 

二:该类型总结
    #1 存一个值or存多个值
            可以存多个值,值都必须为不可变类型

# 2 有序or无序
    无    序

# 3 可变or不可变
            # set集合是可变类型
            # s={1,2,3}
            # print(id(s))
            # s.add(4)
            # print(s)

            # print(id(s))

 

#=====================集合的去重==========================
# 单纯的用集合去重,需要注意的问题是
#1、去重的目标所包含的值必须都为不可变类型
#2、去重的结果会打乱原来的顺序
# names=['asb','asb','asb','wsb','wsb','egon_nb',[1,2,3]]                 
# s=set(names)

# names=list(s)                                     去重目标必须为不可变类型,

 

# print(names)                                        直接报错  

 

posted @ 2018-06-02 14:00  Marcki  阅读(250)  评论(0编辑  收藏  举报