python中集合的表述方式

Python023

python中集合的表述方式,第1张

解决集合出现下划线“function can call be replace with set literal”的问题

集合的三种创建方式:

>>>def f():

       return set([1, 2, 3])

>>>def h():

       return set((1, 2, 3))

>>>def g():  #set Literals

       return {1, 2, 3}

>>>f()

set([1, 2, 3])

>>>h()

set([1, 2, 3])

>>>g()

set([1, 2, 3])

效率对比:

>>>import timeit

>>>min(timeit.repeat(f))

0.675529956817627

>>>min(timeit.repeat(h))

0.5531120300292969

>>>min(timeit.repeat(g))

0.35515809059143066        #最快

尽管这里生成set()的方式对性能的提升很小,set literals不用花费时间调用函数处理中间数据,并且这种写法是非常漂亮的,所以 建议用set literals的方式

a=set(["1","2","3"])可以用a={"1","2","3"}代替,这样算法的时间更短,不用调用set()函数,虽然这种表达和字典形式冲突,但机器会根据输入的形式判断是字典还是集合。但是如果是空字典和空集合,则必须用set加以区分。如空字典 dic={}   空集合 s=set()

目录

前几节我们已经介绍了Python 中的 列表list , 元组tuple 和 字典dict ,本节来介绍Python 中的最后一种数据结构—— 集合set 。

Python 中的 set 与 dict 很像,唯一的不同是, dict 中保存的是 键值对 ,而 set 中只保存 键 ,没有 值 。

Python 集合 有如下特点:

Python 集合的声明有两种方式:

创建 空集合 时,只能用 set() ,而不能用 {} :

创建 非空集合 时,可以用 set() ,也可以用 {} :

由于集合中的元素是唯一的,如果初始化时的 可迭代 数据中有重复的元素,则会自动删去重复的元素:

使用 len() 函数可以查看集合中元素的个数:

由于Python 集合中的元素的是无序的,所以可不能使用 下标 的方式来访问集合中的单个元素。

我们可以使用 for 循环 来遍历集合中的所有元素:

我们可以对两个集合进行如下运算:

交集与并集

in 运算

使用 dir(set) 查看集合支持的所有方法

下面一一介绍这些 非魔法方法 ,共17 个。

1. add 方法

由于集合中的元素是唯一的,向集合中添加元素时有两种情况:

示例

2. remove 方法

示例:

3. discard 方法

示例:

4. pop 方法

示例:

5. union 方法

示例:

6. update 方法

示例:

7. clear 方法

示例:

8. copy 方法

示例:

9. difference 方法

示例:

10. difference_update 方法

示例:

11. intersection 方法

示例:

12. intersection_update 方法

示例:

13. isdisjoint 方法

示例:

14. issubset 方法

示例:

15. issuperset 方法

示例:

16. symmetric_difference 方法

示例:

17. symmetric_difference_update 方法

示例:

(完。)

推荐阅读:

Python 简明教程 --- 8,Python 字符串函数

Python 简明教程 --- 9,Python 编码

Python 简明教程 ---10,Python 列表

Python 简明教程 ---11,Python 元组

Python 简明教程 ---12,Python 字典