码迷,mamicode.com
首页 > 其他好文 > 详细

10、数据类型内置之集合

时间:2020-03-12 23:42:16      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:差集   union   使用   存在   交集   方法   类型   lol   add   

一、集合

1.1、集合定义

  在大括号{}内使用逗号,分隔开多种元素,具备集合需要有以下几种特征:

  1.、每个元素必须是不可变类型

  2、每个元素都是唯一性

  3、集合内元素无序

1.2、作用

  和列表、字典、元组一样可以存放多个值。但主要用来:去重以及关系运算。

  注意:d = {  }   #默认是空字典

     s = set (  )   #代表着空集合

1.3、转换类型   set( )

set({1,2,3})
res=set(hellolllll)
print(res)

1.4、内置方法

1.4.1、交集:  公共的元素    &

res=friends1 & friends2
print(res)
print(friends1.intersection(friends2))

1.4.2、 并集:  所有的元素     |

 print(friends1 | friends2) print(friends1.union(friends2))

1.4.3、差集:   独有的元素    -

print(friends1 - friends2)
print(friends1.difference(friends2))

1.4.4、对称差集:双方独有的元素   ^

print(friends1 ^ friends2)
print(friends1.symmetric_difference(friends2))

1.4.5、父子集:包含的关系     使用大于号或者小于号进行判断

s1={1,2,3}s2={1,2,4}不存在包含关系,下面比较均为Falseprint(s1 > s2)print(s1 < s2)

1.5、去重

1.5.1、使用集合去重,但时无序,只能针对不可变量类型

l=[1,‘a‘,‘b‘,‘z‘,1,1,1,2]
l=list(set(l))
print(l)

1.5.2、使用for循环去重,有序,但时复杂

l=[
    {name:lili,age:18,sex:male},
    {name:jack,age:73,sex:male},
    {name:tom,age:20,sex:female},
    {name:lili,age:18,sex:male},
    {name:lili,age:18,sex:male},
]
new_l=[]
for dic in l:
    if dic not in new_l:
        new_l.append(dic)

print(new_l)

1.6、内置方法

1.6.1、长度  len

s={a,b,c}
len(s)

1.6.2、成员运算   in

s={‘a‘,‘b‘,‘c‘}
c in s

1.6.3、循环     for

for item in s:
    print(item)

1.6.4、删除   discard    remove    pop

s={a,b,c}
s.discard(4) # 删除元素不存在do nothing
print(s)
s.remove(4) # 删除元素不存在则报错
res=s.pop() #删除返回删除的值
print(res)

1.6.5、更新   update

s={a,b,c}
s.update({1,3,5})
print(s)

1.6.6、添加   add  交集

s={‘a‘,‘b‘,‘c‘}
s.add(4)
print(s)

1.6.7、判断两个集合无联系    isdisjoint   

s={‘a‘,‘b‘,‘c‘}
res=s.isdisjoint({3,4,5,6}) # 两个集合完全独立、没有共同部分,返回True
print(res)

1.6.7、差集   difference_update

s={‘a‘,‘b‘,‘c‘}
s.difference_update({3,4,5}) # s=s.difference({3,4,5})
print(s)

 

10、数据类型内置之集合

标签:差集   union   使用   存在   交集   方法   类型   lol   add   

原文地址:https://www.cnblogs.com/jingpeng/p/12483378.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!