重拾 Python 集合 Set

集合:可变数据类型,里面装的都是不可变的数据类型(可哈希)。

首先,我们需要知道在python中哪些是可变数据类型,哪些是不可变数据类型。可变数据类型:列表list,字典dict和集合;不可变数据类型:整型int、浮点型float、字符串型string和元组tuple。

用一句话来概括上述过程就是:“python中的不可变数据类型:不允许变量的值发生变化,如果改变了变量的值,相当于是新建了一个对象,而对于相同的值的对象,在内存中则只有一个对象,内部会有一个引用计数来记录有多少个变量引用这个对象;可变数据类型:允许变量的值发生变化,即如果对变量进行append、+=等这种操作后,只是改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。

1.集合的创建:

set={1,2,3}
print(type(set))

<class 'set'>
set=set({1,2,3,4})

print(set)

2.集合的增加:

add()方法:

set=set({1,2,3,4})

set.add('集合')

print(set)

--------结果--------

{1, 2, 3, 4, '集合'}

update()方法:

set=set({1,2,3,4})

set.update('集合')

print(set)

--------结果--------

{1, 2, 3, 4, '合', '集'}

3.集合的删除:

 remove()方法:删除给定元素

#当元素存在的时候
set=set({1,2,3,4})

set.remove(1)

print(set)

--------结果--------
{2, 3, 4}

#当元素不存在的时候

set=set({1,2,3,4})

set.remove(5)

print(set)

--------结果--------

KeyError: 5  #显示报错

pop()方法: 随机删除元素

set={7,2,3,4}

set.pop()

print(set)

clear()方法:清空集合

set={7,2,3,4}

set.clear()

print(set)

--------结果--------

set()   # 空集合用set()表示,不用{},为了与字典分隔开来

del 方法:删除整个字典

set={7,2,3,4}

del set

4.由于集合的无序性和集合内部装的都是不可变元素的原因,所以无法进行查和改的操作。

5.集合在数学、数据方面的操作:

 1.交集:∩

set1={1,2,3,4}

set2={6,3,4,5}

print(set1&set2)

--------结果--------

{3, 4}

2.并集:|

set1={1,2,3,4}

set2={6,3,4,5}

print(set1|set2)

--------结果--------

{1, 2, 3, 4, 5, 6}

3.差集:-

set1={1,2,3,4}

set2={6,3,4,5}

print(set1-set2)

--------结果--------

{1, 2}

反交集:^

set1={1,2,3,4}

set2={6,3,4,5}

print(set1^set2)

--------结果--------

{1, 2, 5, 6}

子集:<

set1={1,2,3,4}

set2={6,3,4,5}

print(set1<set2)

--------结果--------

False

不可变集合:

set1=frozenset((1,2,3,4))  # 注意:frozenset 的参数只能有1个,所以多个参数要么组成元组,要么组成字符串

for i in set1:
    print(i)

--------结果--------

1
2
3
4

猜你喜欢

转载自blog.csdn.net/weixin_41514525/article/details/87702657
今日推荐