Python数据类型详解——集合

Python数据类型详解——集合

一、定义

集合跟列表有点像,也是可以存一堆数据的,不过它有几个独特的特点:

1、集合里的元素不可变,即不能再集合里存储列表(list)、字典(dict)。字符串、数字、元组等不可变类型可以存储再集合中。

2、天生去重,即在集合里不会出现重复元素,就算你故意写入重复元素,集合也会自动去掉重复的,只保留一个。

3、无序,集合中的元素没有先后之分。

二、语法

1、创建集合

a = {2, 321, 'Kwan', 1, '小明', 'Kwan', 321}

2、帮助列表去重

将列表转换成集合,再转回列表,即可实现列表的去重

a = ['Kwan', 'Kwan', 21, 21, '小明']
a = list(set(a))	# 先转换成集合,再转换成列表

三、增删查改操作

a = {'Kwan', 21, 'male', 'LL', 43}

# 增
a.add('Kobe')

# 删
a.discard('male')   # 用discard()方法,删除指定的元素,若指定元素不存在,则do nothing
a.pop()             # 用pop()方法,随即删除一个元素并返回这个元素
a.remove('LL')      # 用remove()方法,同discard

# 查
if 'Kwan' in a:     # 用in方法
    pass

# 改(没有改这个操作,集合不能改)

四、关系运算

a1 = {'Kwan', '小明', 'LL', 'PP', 'Kobe'}
a2 = {'小明', 'LL', 'Alice', 'Jack', 'Neal'}
print(a1 & a2)   	# &交集运算

print(a1 | a2)	    # |并集运算

print(a1 - a2)	    # -差集运算
print(a2 - a1)

print(a1 ^ a2) 	    # ^对称差集运算

print(a1.isdisjoint(a2))    # 判断两个集合是不是相交的,返回True或者False
print(a1.issubset(a2))	    # 判断a1是不是a2的子集,返回True或者False
print(a1.issuperset(a2))	# 判断a1是不是a2的父集,返回True或者False
原文地址:https://www.cnblogs.com/Kwan-C/p/11466419.html