python3.5-集合及其运算

1.首先看看集合的定义吧。
定义:集合是一个无序的,不重复的数据组合。
作用:
a.去重:把一个列表变成集合,就自动去重复了。
b.关系测试:测试两组数据之间的交集,差集,并集等关系。

————————————————————————————
第一部分,基本的,集合的操作,啥也不多说,直接上代码。

__author__="heixiong"

# 使用set方法设置集合
list_1=[1,1,4,5,7,3,6,7,9]
list_1=set(list_1)
list_2=set([2,6,0,66,22,8,4])

# 对list_1集合与list_2集合进行打印输出
print(list_1,list_2)

# 交集
print("交集")
# 使用集合中intersection方法求交集
print(list_1.intersection(list_2))

# 求并集
# 使用union方法求并集
print("并集")
print(list_1.union(list_2))

# 求差集
print("差集")
# in list_1 but not in lisst_2
print(list_1.difference(list_2))
# in list_2 but not in list_1
print(list_2.difference(list_1))

list_3=set([1,3,7])
# 求子集
# list_3是list_1的子集
print("子集")
print(list_3.issubset(list_1))
# 求父集
print("父集")
print(list_1.issuperset(list_3))


# 反向差集,英文翻译也叫对称差集:简单点讲就是,取出两者都没有的值
# 使用symmetric_difference方法
print("反向差集")
print(list_1.symmetric_difference(list_2))

print("_"*50)

list_4=set([5,6,7,8])
# return true is two sets have a null intersection 无序列不重复的
print(list_3.isdisjoint(list_4))

————————————————————————————————
第二部分 相关集合的运算操作。

__author__="heixiong"

# 使用set方法设置集合
list_1=[1,1,4,5,7,3,6,7,9]
list_1=set(list_1)
list_2=set([2,6,0,66,22,8,4])

# 对list_1集合与list_2集合进行打印输出
print(list_1,list_2)

# 交集
print(list_1 & list_2)
# 并集
print(list_1 | list_2)
# 差集  在集合1中,但是不在集合2 中
print(list_1-list_2)

# 对称差集
print(list_1 ^ list_2)

# 注意子集父集没有相关的运算符。
# 反正多了也记不住

——————————————————————————————————
第三部分 集合的增删改查

__author__="heixiong"

# 使用set方法设置集合
list_1=[1,1,4,5,7,3,6,7,9]
list_1=set(list_1)
list_2=set([2,6,0,66,22,8,4])

# 对list_1集合与list_2集合进行打印输出
print(list_1,list_2)


# 集合的增删改查

# 增
# 增加一项
list_1.add(999)

# 增加多项
list_1.update([888,777,555])

print("查看列表1")
print(list_1)


# 删除
# remove 若不存在,,删除报错
print(list_1.remove(777))
print("使用remove删除777之后的列表")
print(list_1)


# discard方法
print(list_1.discard(999))

print("使用discard删除999之后的列表")
print(list_1)

# pop方法进行无序删除
# pop方法返回删除的值
print("pop方法进行无序删除")
print(list_1.pop())
print("pop方法进行无序删除结果")
print(list_1)

好了就写那么多了,用法基本都写了,还有其他的问题也欢迎交流探讨。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值