Python基础学习之------------集合

版权声明:本博客内原创文章禁止转载 https://blog.csdn.net/qq_32466233/article/details/82081246

python中的集合和字典非常的类似,但是也有他们之间的不同之处。

集合也可以采用{ }来创建,但是它和字典有一定的不同的地方,首先,集合不同设置键-值,而只用设置值,其次,集合中的值是唯一的,也就是说集合中不可能存在两个相同的值。具体如下:

In [61]: set1={1,2,3,4,5,6}

In [62]: set1
Out[62]: {1, 2, 3, 4, 5, 6}

In [63]: set1={1,2,3,4,5,5,4,3,2,1}

In [64]: set1
Out[64]: {1, 2, 3, 4, 5}

另外,集合这种数据类型不支持索引:

In [65]: set1[1]
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-65-2687241cf4ab> in <module>()
----> 1 set1[1]

TypeError: 'set' object does not support indexing

除了直接用花括号来创建集合,我们还可以用set()工厂函数来创建集合。

In [66]: set2=set([1,2,3,4,5,6,7])

In [67]: set2
Out[67]: {1, 2, 3, 4, 5, 6, 7}

传入的值可以是元组,也可以是列表。

使用set方法的时候有一点需要注意,就是set方法创建的集合不能够保证保持原来列表的顺序;此外,如果本来希望原来列表中重复的数字保留下来,那这时候也不适合将该列表转换成集合,因为集合会自行的把重复的值去掉。例子如下:

In [67]: set2
Out[67]: {1, 2, 3, 4, 5, 6, 7}

In [68]: list1=[2,3,14,5,3,4,2,5]

In [69]: list2=list(set(list1))

In [70]: list2
Out[70]: [2, 3, 4, 5, 14]

下面我们来介绍一下在集合中加入和删除一个值

In [70]: list2
Out[70]: [2, 3, 4, 5, 14]

In [71]: set3=set(list2)

In [72]: set3.add(6)

In [73]: set3
Out[73]: {2, 3, 4, 5, 6, 14}

In [74]: set3.remove(14)

In [75]: set3
Out[75]: {2, 3, 4, 5, 6}

下面来介绍一个新概念,不可变集合。frozenset。这种集合不能够改变集合中的值,既不能够添加,也不能够删除。

In [77]: set4=frozenset([1,2,3,4,5])

In [78]: set4
Out[78]: frozenset({1, 2, 3, 4, 5})

In [79]: 1 in set4
Out[79]: True

In [80]: set4.add(6)
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-80-bede7e0f7ff6> in <module>()
----> 1 set4.add(6)

AttributeError: 'frozenset' object has no attribute 'add'

这些就是关于python的集合的学习, 

猜你喜欢

转载自blog.csdn.net/qq_32466233/article/details/82081246