首页 > 其他 > 详细

集合的内置方法

时间:2020-03-12 19:54:08      阅读:78      评论:0      收藏:0      [点我收藏+]

1.作用
  1.1:关系运算

  1.2:去重

技术分享图片
l=[a,b,1,a,a]
print(list(set(l)))#无法保证顺序

# 针对不可变类型,并且保证顺序则需要我们自己写代码实现,例如
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)
# 结果:既去除了重复,又保证了顺序,而且是针对不可变类型的去重
去重代码

2.定义:在{}内用逗号分隔开多个元素,多个元素满足以下三个条件
  集合内元素必须是不可变类型
  集合内元素无序
  集合内元素没有重复

  s = {1,2} #s = set({1,2})
  了解知识点:{}默认定义是空字典,想要定义空集合要用set=({})

 

3.类型转换
  set({1, 2, 3})
  res = set(‘hsdaasd‘)
  print(res)

  print(set([1,1,1,1,1]))
  print(set([1,1,1,[11,22]]))#报错
  print(set({‘k1‘:1,‘k2‘:2}))#取的是key

4.内置方法

技术分享图片
frineds1 = {a,b,c}
friends2 = {b,d,e}

# 4.1 取交集:两者共同的好友
print(friends1 & friends2)
print(friends1.intersection(friends2))

# 4.2 取并集/合集:两者所有的好友
print(friends1 | friends2)
print(friends1.union(friends2))

# 4.3 取差集:取friends1独有的好友
print(friends1 - friends2)
print(friends1.difference(friends2))

# 取friends2独有的好友
print(friends2 - friends1)
print(friends2.difference(friends1))

# 4.4 对称差集: 求两个用户独有的好友们(即去掉共有的好友)
print(friends1 ^ friends2)
print(friends1.symmetric_difference(friends2))

# 4.5 父子集:包含的关系
s1={1,2,3}
s2={1,2,4}
# 不存在包含关系,下面比较均为False
print(s1 > s2)
print(s1 < s2)

# s1={1,2,3}
# s2={1,2}
print(s1 > s2) # 当s1大于或等于s2时,才能说是s1是s2他爹
print(s1.issuperset(s2)) #s1 >s2
print(s2.issubset(s1)) # s2 < s1  =>True

s1={1,2,3}
s2={1,2,3}
print(s1 == s2) # s1与s2互为父子
print(s1.issuperset(s2))
print(s2.issuperset(s1))
集合的几个简单操作

  其他内置方法

技术分享图片
# 长度len
# 成员运算 in 和not in
# 循环

s={1,2,3}
# 需要掌握的内置方法1:discard
s.discard(4) # 删除元素不存在do nothing
print(s)
s.remove(4) # 删除元素不存在则报错

# 需要掌握的内置方法2:update
s.update({1,3,5})
print(s)

# 需要掌握的内置方法3:pop
res=s.pop() #括号里不能填值  随机删除
print(res)

# 需要掌握的内置方法4:add
s.add(4)
print(s)
几个需要掌握的内置方法

 

集合的内置方法

原文:https://www.cnblogs.com/bk134/p/12480989.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!