本章是Python基础数据结构的第二篇,申请了博客专栏,但是没有给回复呢,所有先发布几篇镇楼,哇咔咔、
Python中用到set的方法,和注意事项都以代码的形式体现
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2017-4-24 14:36
# @Author : coderManFans
# @Site : python set模块
# set是一个内置函数,相当于len,str等可以直接拿来就用
# 与列表和元组不同,集合是无序的
# @File : setDemo.py
# @Software: PyCharm
#1. set初始化,set会将整个字符串拆分为单个字符
set1 = set("xxxxxsdsdsdsdsd")
set2 = set("232,323,2,24324,24,2,42")
print(set1)
print(set2)
# 初始化的时候通过list列表初始化,同时如果有重复的,在set里会被清除重复的
set3 = set([2,3,34,332,23,2,3,3,3,3,4,3,4])
print(set3)
list1 = ['sdfasdf',232,'2324323','2323','2323','2323',3333]
set4 = set(list1)
print(set4)
#通过add方法
set4.add('add a new one param')
print(set4)
#2. 集合元素的更新
set5 = set("python")
set5.update("pyinfo,getit...")
print(set5)
set6 = set([2,3,3,4,5,5,6,7])
print(set6)
set6.update(['asdfasdf',2,3,43,43,3,3,3,43,45,6,6])
print(set6)
#3.集合元素的删除,
#如果元素不存在则会报错
set6.remove(3)
print(set6)
#如果在set中存在元素x,则删除该元素
print(set6.discard(23333))
print(set6.discard(2))
#清除set中所有元素
#set6.clear()
#4.集合的长度
print(len(set6))
#5.判断某个元素是否在集合中
print(4 in set6)
print(3 in set6)
print(3 not in set6)
#6. 集合之间的运算 交,并,补,差,子集
#6.1 子集运算 判断set7的元素是否在set8中,就是判断set7是否是set8的子集
# s <= t
set7 = set([3,4,5,6])
set8 = set([3,4,5,6,7,8,9,9])
print(set7.issubset(set8))
#6.2 超集运算 判断set8的元素是否在set7中,就是判断set8是否是set7的子集
#s >= t
print(set8.issuperset(set7))
#6.3 并集运算 | 返回一个新的set包含s和t中的每个元素
#s1 = s | t
set9 = set([3,32,2,4,55,6,6,77,8])
set10 = set8.union(set9)
print(set10)
set10 = set8 | set9
print(set10)
#6.4 交集运算 & 返回一个新的set包含s和t的公共元素
set11 = set9.intersection(set8)
print(set11)
set11 = set9 & set8
print(set11)
#6.5 差集运算 s - t 返回一个新的set包含s,但是t中没有的元素类型
set12 = set9.difference(set8)
print(set12)
set12 = set9 - set8
print(set12)
#6.6 对称差集的运算, 返回一个新的set,每一个元素只能属于s,或者属于t
print(set9)
print(set8)
#返回新的对象
set13 = set9.symmetric_difference(set8)
print(set13)
#在原set中修改,同上
set9.symmetric_difference_update(set8)
print(set9)
#在原set中修改,set中只包含自己有的元素,而不包含公共有的元素
set9.difference_update(set8)
print(set9)
#6.7 set复制
set14 = set12.copy()
print(set14)
#6.8 总结
'''
1.difference_update():做差集运算,原集合更新
2. intersection():交集运算,不更新原集合,返回新集合
3.intersection_update(): 取交集,更新原集合
4.isdisjoint(): 是否有交集,返回值为True,False
5.issubset():是否为子集,返回值为True,false
6.issuperset():是否为超集,返回值为True,false
7.pop():对集合进行随机元素的删除(不需要参数),返回该元素
8.remove():对集合元素有目标删除(需要参数),没有返回值;元素不存在,则报错
9.symmetric_difference():对称差
'''