目录
set集合
集合的表现形式{value1, value2, ....} 集合的特性: 1.是否有序:无序 2.是否可以重复: 不可以重复(放入集合的元素可以去重)
.add
add(...) 将元素添加到集合中。如果元素已存在,则这不起作用。
一次命令只能添加一个元素,且如果元素已经存在在集合中则这次添加不起作用。返回值为空
set_data1 = {1, 2, 3}
set_data2 = {2, 3, 4}
set_data1.add(1)
set_data1.add(4)
print(set_data1)
.clear
删除集合内的所有元素,返回值为空,直接在源列表进行操作
set_data1 = {1, 2, 3}
set_data2 = {2, 3, 4}
print(set_data1.clear())
data_dict.clear()
print(data_dict)
打印源集合就是一个空集合
.copy
返回一个集合浅拷贝的值
set_data = {1, 2, 3}
copy_data = set_data.copy
不理解浅拷贝的请参考阿妈上一个博客发文哦
.difference
将两个或多个集合的差集转换为新集合。所以次返回值就是返回这个集合和另一个集合的差集
需要注意的是返回的差集是我们原集合的差集,不包含其他集合的元素。
set_data1 = {1, 2, 3}
set_data2 = {2, 3, 4}
print(set_data1.difference(set_data2))
根据结果可能会更好的理解一点
.difference_update
从此集合中删除另一个集合的所有元素。其实就是把两个集合的差集从原集合中删除,返回值为空。
set_data1 = {1, 2, 3}
set_data2 = {2, 3, 4}
print(set_data1.difference_update(set_data2))
print(set_data1)
.discard
如果元素是成员,则从集合中删除该元素。如果不是不会报错但也不会对集合有影响
此操作会比remove更好一点,因为如果元素不存在的情况remove可能会出现问题。次操作返回值为空。
set_data1 = {1, 2, 3}
print(set_data1.discard(3))
print(set_data1)
.intersection
将两个集合的交集作为新集合返回。就是两个集合中的所有元素的交集以一个新集合的形式作为返回值。原集合不会改变
set_data1 = {1, 2, 3}
set_data2 = {2, 3, 4}
print(set_data1.intersection(set_data2))
print(set_data1)
.interesection_update
用自身和另一个集合的交集更新一个集合。其意思就是生产一个新的交集集合改变原集合的元素。返回值为空。
set_data1 = {1, 2, 3}
set_data2 = {2, 3, 4}
set_data1.intersection_update(set_data2)
print(set_data1.intersection_update(set_data2))
print(set_data1)
.isdisjoint
如果两个集合具有空交集,则返回 True。反之如果两个集合有交集则返回False。
set_data1 = {1, 2, 3}
set_data2 = {2, 3, 4}
print(set_data1.isdisjoint(set_data2))
显而易见返回值肯定为False
.issubset
报告另一个集是否包含此集(判断这个集合是否为另一个集合的子集)。返回值为Ture或者False
set_data1 = {1, 2, 3}
set_data2 = {2, 3, 4}
set_data3 = {1, 2, 3, 4}
print(set_data1.issubset(set_data2))
print(set_data1.issubset(set_data3))
根据例子可以知道set_date1不是set_data2的子集,set_data1是set_data3的子集
.issuperset
报告此集是否包含另一个集(判断列一个集合是否为此集合的子集)。(和issubest刚好相反)
set_data1 = {1, 2, 3}
set_data2 = {2, 3, 4}
set_data3 = {1, 2, 3, 4}
print(set_data1.issuperset(set_data2))
print(set_data3.issuperset(set_data3))
根据例子可以知道set_date1不是set_data2的子集,set_data1是set_data3的子集。
.pop
删除并返回任意 set 元素。如果集合为空,则引发键错误。
set_data1 = {1, 2, 3}
set_data3 = set_data1.pop()
print(set_data3)
print(set_data1)
.remove
从集合中删除元素;必须是集合内的元素。如果不是就会引发KeyError。返回值为None
set_data1 = {1, 2, 3}
set_data2 = {2, 3, 4}
print(set_data1.remove(1))
print(set_data1)
.symmetric_difference
将两个集合的对称差值作为新集合返回(对称差值)。就是包含两个集合差值的所有值组成的一个新集合
set_data1 = {1, 2, 3}
set_data2 = {2, 3, 4}
print(set_data1.symmetric_difference(set_data2))
打印的结果为{1, 4}
.symmetric_difference_updata
用自身和另一个的对称差值更新一个集合。即更改原集合的内容为对称差值。操作返回值为None
set_data1 = {1, 2, 3}
set_data2 = {2, 3, 4}
set_data1.symmetric_difference_update(set_data2)
print(set_data1)
.union
将集合的并集作为新集合返回。
set_data1 = {1, 2, 3}
set_data2 = {2, 3, 4}
print(set_data1.union(set_data2))
.update
用自身和其他集合的并集更新集合。返回值为None。,
set_data1 = {1, 2, 3}
set_data2 = {2, 3, 4}
print(set_data1.update(set_data2))
print(set_data1)