python数据类型—集合(set)

集合(set) – 类似于字典

集合的两大功能:

  • 集合可以实现去重的功能
  • 集合可以实现关系测试:交集;差集;并集;是否子集;是否没有交集

1. 集合的定义

集合里面的元素是没有重复的

python数据类型—集合(set)_第1张图片

定义一个空集合:第一种方法的定义是错误的,生成的是一个字典;第二种方法才是正确的定义一个空集合的方法。

python数据类型—集合(set)_第2张图片

2. 集合的特性

集合是无序的,不重复的数据类型,因此不支持索引;切片;重复和连接,只满足成员操作符和for循环。

python数据类型—集合(set)_第3张图片

3. 集合的增删查

增加:

1. add()—增加单个元素

python数据类型—集合(set)_第4张图片

2. update()—增加多个元素

python数据类型—集合(set)_第5张图片

删除:

1. pop()—默认删除集合的第一个元素,这里与列表刚好相反,尤其注意,不可相互混淆。

python数据类型—集合(set)_第6张图片

2. remove()—删除指定的元素

python数据类型—集合(set)_第7张图片

3. clear()—清空集合元素

python数据类型—集合(set)_第8张图片

查看:

# 并集
print '并集:', s1.union(s2)       ## 集合关系
print '并集:', s1 | s2            ## 数学方法

结果:并集: set([1, 2, 3, 4])

# 交集
print '交集:', s1.intersection(s2)
print '交集:', s1 & s2

结果:交集: set([2, 3])

# 差集
# 可以理解为s1中有哪些s2中没有的元素
print '差集:', s1.difference(s2)
print '差集:', s1 - s2

结果:差集: set([1])

# 对等差分:并集-交集
print '对等差分:', s1.symmetric_difference(s2)
print '对等差分:', s1 ^ s2

结果:对等差分: set([1, 4])

s3 = {1, 2}
s4 = {1, 2, 3}

# s3是否为s4的子集
print s3.issubset(s4)

结果:True

# s3是否为s4的超集
print s3.issuperset(s4)

结果:False

# 两个集合是不是不相交
print s3.isdisjoint(s4)

结果:False

总结

  • 可变数据类型:列表,字典,集合
  • 不可变数据类型:数值类型,字符串,元组
    • 可变数据类型实现某个功能,直接改变可变的数据类型;
    • 不可变数据类型实现某个功能,需要将结果赋值给另外一个变量;
  • 是否实现for循环
    • 可迭代数据类型:str,list,tuple,dict,set
    • 不可迭代数据类型:数值类型
  • 是否支持索引,切片,重复和连接特性
    • 有序的数据类型:str,list,tuple支持
    • 无序的数据类型:dict,set不支持

 

 

 

 

 

 

 

你可能感兴趣的:(python,python,数据类型,集合)