码迷,mamicode.com
首页 > 其他好文 > 详细

day10(集合)

时间:2018-03-11 14:38:11      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:==   判断   字符   字符串   没有   date   方法   sdi   super   

一、集合

简介:

集合是一个无序的,不重复的数据组合,他的主要作用如下

去重,就是把一个列表变成集合就自动去重了

关系测试,测试两组数据之前的交集,差集,对称差集,并集等关系

l = {1,2,3,4,4,5,2}#创建集合则自动去重
print(l)
l.add(7)# add 只能添加不可变数据,并且每次只能添加一个值
print(l)
l.pop()#pop  随机删除一个值
print(l)
l.remove(3)#remove  删除固定的值,如果值不存在则会报错
print(l)
l.discard(6)#discard 删除,如果存在直接删除,如果不存在也不会报错
l.update([1,3,4,5,6,7,89]) #updata 可以增加多个值
print(l)
l.clear()# clear 清空集合
print(l)
s = [1,2,3,4,5,3,2]
print(s)
s = set(s)#将字符串转换为集合
print(s)

#输出

{1, 2, 3, 4, 5}
{1, 2, 3, 4, 5, 7}
{2, 3, 4, 5, 7}
{2, 4, 5, 7}
{1, 2, 3, 4, 5, 6, 7, 89}
set()
[1, 2, 3, 4, 5, 3, 2]
{1, 2, 3, 4, 5}

集合中的元素特性:

  1. 确定性(元素必须可Hash)
  2. 互异性(去重)
  3. 无序性(集合中的元素没有先后之分),如集合{3,4,5} 和 {4,5,3}算作同一个集合。

集合关系测试:

交集,在两个集合里都拥有的元素,叫做交集

apple = {jiu,lin,liang,kun}
banana = {jiu,lin,zhang,li}
print(apple.intersection(banana))
print(apple & (banana)) #简写
#输出
{lin, jiu}
{lin, jiu}

差集,在两个集合中,只在其中一个集合的元素

apple = {jiu,lin,liang,kun}
banana = {jiu,lin,zhang,li}
print(apple.difference(banana)) #只买了苹果的人
print(apple - (banana)) #简写
print(banana.difference(apple))#只买了香蕉的人
print(banana - (apple))
#输出
{liang, kun}
{liang, kun}
{li, zhang}
{li, zhang}

并集,将两个集合合并

apple = {jiu,lin,liang,kun}
banana = {jiu,lin,zhang,li}
print(apple.union(banana))#将 apple  和banana 合并
print(apple|(banana)) #简写

对称差集,将两个集合中只单独存在一次的元素,合并在一起

apple = {jiu,lin,liang,kun}
banana = {jiu,lin,zhang,li}
print(apple.symmetric_difference(banana))#只选择了一种水果的人
print(apple^(banana))#简写
#输出
{zhang, kun, liang, li}
{zhang, kun, liang, li}

包含关系

in,not 

in :判断某元素是否在集合内   

== , ! =:判断两个集合是否相等

apple = {jiu,lin,liang,kun}
banana = {jiu,lin,zhang,li}
print(jiu in (apple))#判断‘jiu’ 是否在apple里反之 not in
 print(apple == banana) #判断两个集合是否相等 
#
输出

True
False

两个集合之间一般有三种关系,相交、包含、不相交,在python中分别用下面的方法判断:

apple = {jiu,lin,liang,kun}
banana = {jiu,lin,zhang,li,liang,kun}
print(apple.isdisjoint(banana))#判断两个集合是否不相交
print(apple.issubset(banana))#判断集合是否被其他集合所包含
print(apple <= (banana))# 简写
print(apple.issuperset(banana))#判断集合是否包含其他合集
print(apple >= banana) #简写

#输出
False
True
True
False
False

 

day10(集合)

标签:==   判断   字符   字符串   没有   date   方法   sdi   super   

原文地址:https://www.cnblogs.com/mjiu/p/8543578.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!