Python记录3:集合

#一,集合类型
###找出两个集合的交集并将结果打印出来
# python_stu=['egon','alex','kevin','王大炮','李二丫']
# linux_stu=['张铁蛋','刘铜蛋','赵金蛋','alex','kevin','oldboy']
# res=[]
# for stu1 in python_stu:
# if stu1 in linux_stu:
# res.append(stu1)
# print(res)
#
#2 集合
# 定义方式:在{}用逗号分割开多个元素,但是集合内元素必须要满足一下特点
#2.1: 必须是不可变类型
#2.2: 不能重复
#2.3: 集合内元素无序
# s={1,1,1,1,1,1} #s=set({1,1,1,1,1,1})
# print(s)
# print(type(s))

# s1=set('hello')
# print(s1)
# print(type(s1))

# s={}
# print(type(s))
#这样定义一个空的,打印出来的是一个字典
#要定义一个集合必须这样定义
# s=set()
# print(s,type(s))

# s={'egon','alex','kevin','oldboy'}
# print(s,type(s))

# 3、常用操作+内置的方法
#优先掌握的操作:(*****)
#1、长度len
# s={'egon','alex','kevin','oldboy'}
# print(len(s))
#2、成员运算in和not in
# s={'egon','alex','kevin','oldboy'}
# print('egon' in s)

# python_stu={'egon','alex','kevin','王大炮','李二丫'}
# for item in python_stu:
# print(item)
# linux_stu={'张铁蛋','刘铜蛋','赵金蛋','alex','kevin','oldboy'}
#3、|合集:取两个集合合并后的结果,例如:取老男孩所有报名的学生姓名
# print(python_stu | linux_stu)
# print(python_stu.union(linux_stu))

# python_stu=python_stu.union(linux_stu)
# python_stu.update(linux_stu)
# print(python_stu)

#4、&交集: 取两个集合共同的部分,例如:取同时报名两门课程的学员
# print(python_stu & linux_stu)
# print(python_stu.intersection(linux_stu))
# python_stu.intersection_update(linux_stu) #python_stu=python_stu.intersection(linux_stu)
# print(python_stu)

#5、-差集: 取存在于左边结合但不存在与右面集合的元素,例如:取只报名python课程的学员
# print(python_stu - linux_stu)
# print(python_stu.difference(linux_stu))

#6、^对称差集:例如:取没有同时报名两门课程的学员
# print((python_stu - linux_stu) | (linux_stu - python_stu))
# print(python_stu ^ linux_stu)
# print(python_stu.symmetric_difference(linux_stu))

#7、==判断是否相等,集合中只要元素相等,集合就相等,集合是无序的
# s1={1,2,3}
# s2={3,2,1}
# print(s1 == s2)

#8、父集:>= print(s1.issuperset(s2))
#9、子集:<= print(s2.issubset(s1))
# s1={1,2,3,4}
# s2={1,2,3}
# print(s1 >= s2)
# print(s1.issuperset(s2))
# print(s2.issubset(s1))

# 集合類型其他内置方法(**)
##pop 从最后面弹出来 一个一个按照顺序弹出来
# s1={'a','b','c'}
# print(s1.pop())
# print(s1)
# print(s1.pop())
# print(s1)
# print(s1.pop())
# print(s1)

# res=s1.remove('b')
# print(s1)
# print(res)
# s1.remove('d')
# s1.discard('d')
# print(s1)

# s1.add('d')
# print(s1)

# s1={1,2,3}
# s2={6,4,5}
# print(s1.isdisjoint(s2))
#判断两个集合是否有交集
# ======================================该类型总结====================================
# 集合是存多个值的
# 无序的
# 可变类型(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash)

# s1={1,2,3}
# print(id(s1))
# s1.update({4,5,6})
# print(s1)
# print(id(s1))

# 去重:
# stus=['egon','egon','egon','kevin',1,2,3,'alex']
# res=set(stus)
# print(list(res))

#去重的局限性:
#1. 被去重的元素必須是不可变类型
#2. 不能保证原来的顺序

# l=[
# {'name':'egon','age':18,'sex':'male'},
# {'name':'alex','age':73,'sex':'male'},
# {'name':'kevin','age':20,'sex':'female'},
# {'name':'egon','age':18,'sex':'male'},
# {'name':'egon','age':18,'sex':'male'},
# ]
# # print({'name':'egon','age':18,'sex':'male'} in l)
# l1=[]
# for dic in l:
# if dic not in l1:
# l1.append(dic)
# print(l1)

猜你喜欢

转载自www.cnblogs.com/1832921tongjieducn/p/10068397.html