一、集合
python 基础数据类型之:集合set,容器型的数据类型,它要求他里面的元素是不可变的数据,但是它本身是可变的数据类型。集合是无序的 {}
-
集合的作用:
-
列表的去重
-
关系测试:交集、并集、差集,........
-
-
集合的创建:set1 = set({1,2,3,'barry',False})
set1 = s{1,2,3,'barry',False}
# 集合的创建:
# set1 = set({1, 3, 'Barry', False})
# set1 = {1, 3, '太白金星', 4, 'alex', False, '武大'}
# print(set1) -
集合的操作:
空字典:{}
空集合:set()
# 集合的有效性测试
set1 = {[1,2,3], 3, {'name': 'alex'}}
print(set1)-
增
set1.add('元素')
set1 = {'太白金星', '景女神', '武大', '三粗', 'alexsb', '吴老师'}
set1.add('xx')
print(set1)
#{'三粗', '太白金星', 'alexsb', '吴老师', '景女神', 'xx', '武大'}set1.update() 迭代追加
set1 = {'太白金星', '景女神', '武大', '三粗', 'alexsb', '吴老师'}
set1.update('dasda')
print(set1)
#{'d', 's', '太白金星', 'a', '吴老师', 'alexsb', '景女神', '武大', '三粗'} -
删
remove 按照元素删除 set1.remove()
set1 = {'太白金星', '景女神', '武大', '三粗', 'alexsb', '吴老师'}
set1.remove('alexsb')
print(set1)
#{'武大', '景女神', '三粗', '太白金星', '吴老师'}pop 随机删除 set1.pop()
set1 = {'太白金星', '景女神', '武大', '三粗', 'alexsb', '吴老师'}
set1.pop()
print(set1)
#{'alexsb', '武大', '三粗', '景女神', '吴老师'}clear清空
-
改:变相改值
先删除,再添加
set1 = {'太白金星', '景女神', '武大', '三粗', 'alexsb', '吴老师'}
set1.remove('太白金星')
set1.add('男神')
print(set1)
#{'alexsb', '景女神', '男神', '吴老师', '武大', '三粗'}
-
-
数据之间关系测试(***)
-
交集 (& 或者 intersection)
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
print(set1 & set2)
# {4, 5} -
并集 (| 或者 union)
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
print(set1 | set2)
#{1, 2, 3, 4, 5, 6, 7, 8} -
差集 (- 或者 difference)
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
print(set1 - set2)
#{1, 2, 3} -
反交集 (^ 或者 symmetric_difference)
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
print(set1 ^ set2)
#{1, 2, 3, 6, 7, 8} -
子集:<
set1 = {1,2,3}
set2 = {1,2,3,4,5,6}
print(set1 < set2)
# True -
超集:>
set1 = {1,2,3}
set2 = {1,2,3,4,5,6}
print(set2 > set1)
# True
-
-
列表去重(***)
l1 = [1,'太白', 1, 2, 2, '太白',2, 6, 6, 6, 3, '太白', 4, 5, ]
set1 = set(l1)
l1 = list(set1)
print(l1)
#[1, '太白', 3, 2, 4, 6, 5]