集合的内置方法

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)
几个需要掌握的内置方法

猜你喜欢

转载自www.cnblogs.com/bk134/p/12480989.html