第九章 python3集合set

截止今天,我们已经了解了Python中六大数据类型中的数字(number),字符串(string),列表(list),元组(tuple),字典(dict);

今天我们来了解下最后一种数据类型:

集合set,它是一种无序不重复的序列,使用花括号{ }或者set()方法来创建,元素之间用逗号(,)隔开。

1、创建集合

创建集合set,格式如下:

set = {value1,value2,...}

set = set(value)

注意:创建一个空集合必须用set()而不是花括号{ },因为花括号{ }是用来创建一个空字典的,实例代码:

 

 

  集合set可以创建一个无序不重复元素集,用来确认逻辑关系,删除重复数据,还可以计算交集、差集、并集等;

set(iterable) :参数是一个可迭代对象,比如:字符串,列表,元组,字典等

如果将一个字符串单独做为参数时,set()将会拆分每一个单字符串作为集合的元素,并不是创建只含一个元素的集合。

2添加元素

实例代码:

 

 

 3更新元素

实例代码:

 

 

 注意:add()和update(),如果添加/更新的元素在集合中已存在,则该元素只会出现一次,重复的会忽略。

4删除元素

4.1pop() 删除哪个元素是不确定的

实例代码:

 

 

 4.1删除指定的元素

remove() discard(),实例代码:

 

 

 注意:remove()和discard()的区别:

remove() 方法在移除一个不存在的元素时会发生错误,而 discard() 方法不会。

4.3del语句删除整个集合set对象

实例代码:

 

 

 4.4清空集合所有元素

实例代码:

 

 

 5判断元素是否存在

in , not in ,实例代码:

 

 

 6集合set推导式

实例代码:

 

 

 多个集合set间的运算:==,!=,<,<=,>,>=,^,&,|,- ,

实例代码:

 

 

 

 

 7集合set常用方法

前面已经了解了一些集合的方法了,下面再补充几个;

7.1复制集合copy()

实例代码:

 

 

 我们发现copy()后,两个集合对象的内存地址是不一样的,说明它们的指向不同,修改时互不影响。

 

 

 difference_update() 和difference() 的区别:difference()返回一个移除相同元素的新集合,而 difference_update()是直接在原来的集合中移除元素,没有返回值。

 

 

 

 

 

issubset() 和 issuperset区别在于以哪个集合为参照,仅此而已。

集合set()可以过滤列表list中重复的元素,也可以用作类型转换,实例代码:

 

 

 

 8补充知识

set是可变集合,frozenset是不可变集合。

frozenset(iterable) 参数为可迭代对象,可以把列表,字典,元组,字符串 可变集合 转化为不可变集合;

frozenset()因为是不可变集合,所以它不像set(),是没有添加,更新,删除等方法的。

 

posted @ 2019-10-03 23:44  在软件技术路上的行者  阅读(157)  评论(0编辑  收藏  举报