10--最后一个数据类型集合

集合

  1、定义

    在{}内用,分隔开多个元素,必须满足以下三个条件

#     1、集合内的元素必须为不可变类型
#     2、集合内元素无序
#     3、集合内元素没有重复

    验证上述三个条件

s = {}  # 空的花括号默认定义的是空字典
s = {1,2,'a',(1,4)}  # 底层是调用了set()功能
print(s)
# 定义空集合
s1 = set()


#     1、集合内的元素必须为不可变类型
# s2 = {[1,2,3],1}  # 不可哈希是可变类型
# print(s2)
#     2、集合内元素无序
s = {1,2,'a',(1,4)}  # 底层是调用了set()功能
print(s)
#     3、集合内元素没有重复,可以进行去重
s = {1,1,1,1,1,2,2}
print(s)

  2、类型转换:相当于底层调用for循环,取出每一个值放在集合中

# 对字符串进行转换,会自动将字符串中重复的去掉
s = set('hellollllop')
print(s)

# 对列表进行转换
s = set([1,2,3,4,5,6])
# s = set([1,2,3,4,5,6,[1,2]])  这个就是错的
# print(s)

# 对字典进行转换
s = set({'k1':12,'k2':13}.items())
print(s)
s = set({'k1':12,'k2':13})
print(s)
s = set({'k1':12,'k2':13}.values())
print(s)

  3、内置方法

             3.1 关系运算

a = {1, 2, 3}
b = {2, 3, 4}
# 交集:求共同的值,两种方法
res = a & b
res1 = a.intersection(b)
print(res)
print(res1)

# 并集:两者所有的值,重复的去掉
res = a | b
res1 = a.union(b)
print(res)
print(res1)

# 差集:取a独有的值,a为被减
res = a - b
res1 = a.difference(b)
print(res)
print(res1)

# 对称差集:两个独有的值
res = a ^ b
res1.symmetric_difference(b)
print(res)
print(res1)

# 父子集:包含的关系,当两个集合相等时,互为父子集
s4 = {1,2,3}
s5 = {1,2}
res = s4.issubset(s5)
res1 = s4.issuperset(s5)
print(s4 > s5)

 

    3.2 去重操作

# 局限性
#   只能针对不可变类型去重

print(set([1,1,1,1,2,3]))
#   无法保证原来的顺序
# 针对可变类型去重,需要自己写代码
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 info in l:
    if info not in new_l:
        new_l.append(info)
        l = new_l
print(new_l)
print(l)

 

  3.3 len()  集合的长度

  3.4 成员运算in 和 not in

  3.5 for循环进行遍历

4、其他内置方法

  4、1 删除 

s = {1,2,3,4,5}
# 用来删除元素的,指定元素不存在不会报错,do nothing
s.discard(2)
print(s)
# 用来删除元素的,指定元素不存在报错
s.remove(2)
# 随机删除
res = s.pop()

 

   4、2更新列表

# 更新列表
s.update({3,6,9,2})
# 求差集,并把差集的值赋给该集合
s.difference_update({3,4,5})  #  s = s.difference({3,4,5})

  4.3 增加值 add

s.add(4)

  4.4 判断两个集合是否完全独立,没有相同部分  isdisjoint()

print(s.isdisjoint({1,2,3}))

 

posted @ 2020-03-12 18:13  微信搜索-程序媛小庄  阅读(164)  评论(0编辑  收藏  举报