码迷,mamicode.com
首页 > 编程语言 > 详细

Python数据类型之五(集合)

时间:2018-03-06 00:51:10      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:集合   /usr   自动   int   交集   none   更新   rem   super   

集合的作用

   知识点回顾:可变类型是不可hash类型,不可变类型是可hash类型

    作用:去重,关系运算

    定义:可以包含多个元素,用逗号分割,集合的元素遵循三个原则:

      1.每个元素必须是不可变类型(可hash,可作为字典的key)

      2.没有重复的元素

      4.无序

    注意集合的目的是将不同的值存放在一起,不同的集合间用来做关系运算,无需纠结集合中的单个值

二、常用方法

#!/usr/bin/python3
 
student = {Tom, Jim, Mary, Tom, Jack, Rose}
 
print(student)   # 输出集合,重复的元素被自动去掉
 
# 成员测试
if(Rose in student) :
    print(Rose 在集合中)
else :
    print(Rose 不在集合中)
 
 
# set可以进行集合运算
a = set(abracadabra)
b = set(alacazam)
 
print(a)
 
print(a - b)     # a和b的差集
 
print(a | b)     # a和b的并集
 
print(a & b)     # a和b的交集
 
print(a ^ b)     # a和b中不同时存在的元素

|并集(print(pythons.union(linuxs)))

&交集(print(pythons.intersection(linuxs)))

-差集(print(pythons.difference(linuxs)))

^对称差集(print(pythons.symmetric_difference(linuxs)))

 >,>= ,<,<= 父集(issuperset),子集(issuberset)

set方法

1:add方法添加,添加可变的数据类型也是会报错的

s = {1,2,5,5,g,h}

s.add(3)
prin(s)
结果:
{1, 2, 3, 5, ‘h‘, ‘g‘}

2:clear   清空集合

3:intersection  交集,相当于&

s = {1,7,9} 
s1 = {1,9,5}
print(s&s1)
print(s.intersection(s1))
结果:
{9, 1} 
{9, 1}

4:union  并集,相当于 |

 s = {1,7,9}
s1 = {1,9,5}  
print(s|s1)  
print(s.union(s1))
结果:
{1,5,7,9}
{1,5,7,9}

5:difference  差集,相当于-

s = {1,7,9}  
s1 = {1,9,5} 
print(s-s1)  
print(s.difference(s1))
结果:
{7} 
{7}

6:symmetric_difference  交叉补集,相当于^

s = {1,7,9}  
s1 = {1,9,5}  
print(s^s1)  
print(s.symmetric_difference(s1))  
结果:
{5, 7}  
{5, 7}

7:difference-update   差集更新
8:isdisjoint        判断是否有交集:

9:issubset        判断是否为子集

s1={1,2}  
s2={1,2,3}  
print(s1.issubset(s2))  
print(s2.issubset(s1))    
结果: 
True
False

10:删除

s = {9, sb, 1, 2, 3, 4, 5, 6}  
s.pop()   # pop不能指定删除,只可以随机删除  
print(s)    
s.remove(4) # 指定删除元素,当删除的元素不存在时,删除会报错
print(s)   
s.discard(5)   # 指定元素删除;和remove唯一的区别删除不存在不会报错
print(s)       
结果:
{2, 3, 4, 5, 6, 9, sb}
{2, 3, 5, 6, 9, sb}
{2, 3, 6, 9, sb}

 

 

 

 

Python数据类型之五(集合)

标签:集合   /usr   自动   int   交集   none   更新   rem   super   

原文地址:https://www.cnblogs.com/zhouxinyu/p/8511871.html

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