Python中集合(set)的基本操作以及一些常见的用法

Python除了List、Tuple、Dict等常用数据类型外,还有一种数据类型叫做集合(set),集合的最大特点是:集合里边的元素是不可重复的并且集合内的元素还是无序的,所以一般情况下集合常用的两个场景是:1.去重(如:列表去重);2.关系测试(如:取交集、取并集、取差集等)

1)集合包含一组无序的对象,可以使用set()函数来像下边的方式一样来创建集合

#!/usr/bin/env python
# -*-coding:UTF-8 -*-
#创建一个数值集合
set1 = set([1,2,3,4])
#创建一个字符集合  注意:从输出结果中我们会看到l只出现了一次
set2 = set("HelloWorld!")
print(‘set1 %s‘ % set1)
print(‘set2 %s‘ % set2)
‘‘‘运行结果
set1 {1, 2, 3, 4}
set2 {‘d‘, ‘o‘, ‘e‘, ‘H‘, ‘l‘, ‘W‘, ‘r‘, ‘!‘}
‘‘‘

2)去重,即可能在一些特殊的场景需要用到,实现去除掉列表中的重复元素

#!/usr/bin/env python
# -*-coding:UTF-8 -*-
#列表去重比较简单
list1 = [3,3,3,4,5,3]
set1 = set(list1)
print("list1去重后的set集合:",set1)
#将如中后的集合在转化成一个新列表
new_list = [i for i in set1]
print("list1去重后的list列表:",new_list)
‘‘‘运行结果
list1去重后的set集合: {3, 4, 5}
list1去重后的list列表: [3, 4, 5]
‘‘‘

3)关系测试,即一些集合的最基本操作,如集合取交集、取并集、取差集、判断一个集合是不是另一个集合的子集或者父集等。

#!/usr/bin/env python
# -*-coding:UTF-8 -*-
set1 = set([1,2,3,4,5])
set2 = set([3,4,5,6,7])
#取交集
set3 = set1.intersection(set2)
# set3 = set1 & ste2  #取交集,与intersection()效果相同
print("set1和set2的交集为:",set3)
#取并集
set4 = set1.union(set2)
#set4 = set1 | set2   #取并集,与union()效果相同
print("set1和set2的交集为:",set4)
#取差集    这个地方要稍稍注意一下,防止进坑
set5 = set1.difference(set2)
#set5 = set1 - set2  #取差集 ,与difference()效果相同
print("set1与set2的差集为:",set5)
set6 = set2.difference(set1)
print("set2与set1的差集为:",set6)
#对称差集 -----即去掉两个集合的共同的部分
set7 = set1.symmetric_difference(set2)
#set7 = set1 ^ set2  #对称差集, 与symmetric_difference()效果相同
print("去掉两个集合的共同的部分:",set7)
#判断是否是set1是否是set2的子集
flag1 = set1.issubset(set2)
print("print(判断是否是set1是否是set2的子集):",flag1)
#判断是否是set1是否是set2的父集
flag2 = set1.issuperset(set2)
print("判断是否是set1是否是set2的父集:",flag2)
‘‘‘运行结果如下:
set1和set2的交集为: {3, 4, 5}
set1和set2的交集为: {1, 2, 3, 4, 5, 6, 7}
set1与set2的差集为: {1, 2}
set2与set1的差集为: {6, 7}
去掉两个集合的共同的部分: {1, 2, 6, 7}
print(判断是否是set1是否是set2的子集): False
判断是否是set1是否是set2的父集: False
‘‘‘

4)集合的一些其它基本操作

#!/usr/bin/env python
# -*-coding:UTF-8 -*-
#输出集合中的元素
#注意集合与列表和元组不同,集合是无序的,所以无法通过数字进行索引获取某一个元素的值
set1 = set([1,2,3,4])
for i in set1:
    print (i)
#向集合中添加一个元素
set1.add(5)
print("向集合中添加一个元素5后:",set1)
#删除一个元素
set1.remove(1)
print("从集合中删除元素1后:",set1)
#计算集合的长度
l = len(set1)
print("集合的长度为:",l)
#判断某个元素是否在集合内
flag1 = 2 in set1
print("判断元素2是否在集合内:",flag1)
#断某个元素是否不在集合内
flag2 = 3 not in set1
print("判断元素3是否不在集合内:",flag2)
#对集合进行一次浅复制
set2 = set1.copy()
print("对集合进行一次浅复制:",set2)
‘‘‘运行结果如下:
1
2
3
4
向集合中添加一个元素5后: {1, 2, 3, 4, 5}
从集合中删除元素1后: {2, 3, 4, 5}
集合的长度为: 4
判断元素2是否在集合内: True
判断元素3是否不在集合内: False
对集合进行一次浅复制: {2, 3, 4, 5}
‘‘‘

以上是集合(set)的一些比较常用操作的示例,对于集合的一些其它操作,这里就不在一一举例说明了。

时间: 2024-12-30 00:04:20

Python中集合(set)的基本操作以及一些常见的用法的相关文章

Python中集合(set)的操作及一些比较常见的用法

Python除了List.Tuple.Dict等常用数据类型外,还有一种数据类型叫做集合(set),集合的最大特点是:集合里边的元素是不可重复的并且集合内的元素还是无序的,所以一般情况下集合常用的两个场景是:1.去重(如:列表去重):2.关系测试(如:取交集.取并集.取差集等) 1)集合包含一组无序的对象,可以使用set()函数来像下边的方式一样来创建集合 #!/usr/bin/env python # -*-coding:UTF-8 -*- #创建一个数值集合 set1 = set([1,2,

python中 Lambda,Map,Filter,Itertools,Generator高级函数的用法

Lambda 函数 Lambda 函数是一种比较小的匿名函数--匿名是指它实际上没有函数名. Python 函数通常使用 def a_function_name() 样式来定义,但对于 lambda 函数,我们根本没为它命名.这是因为 lambda 函数的功能是执行某种简单的表达式或运算,而无需完全定义函数. lambda 函数可以使用任意数量的参数,但表达式只能有一个. x = lambda a, b : a * b print(x(5, 6)) # prints '30' x = lambd

python中os.path.isdir()等函数的作用和用法

一 用法和概念: Python中的os模块用于和系统进行交互,其中: 1 os.listdir()用于返回一个由文件名和目录名组成的列表,需要注意的是它接收的参数需要是一个绝对的路径. 2 os.path.isdir()用于判断对象是否为一个目录. 3 os.path.isfile()用于判断对象是否为一个文件. 二 实例和讲解: 下面看一下他们的用法实例: 路径下的目录和文件: dir_test os_file.py test test.txt 程序代码: 1 import os 2 path

(转)python中集合的运算

原文:http://blog.csdn.net/business122/article/details/7541486 python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算. sets 支持 x in set, len(set),和 for x in set.作为一个无序的集合,sets

Python学习-31.Python中集合的一些操作

add方法: 1 s = {1,2,3} 2 s.add(4) 3 print(s)# {1, 2, 3, 4} 同list的append方法,若调用s.add(3),则不会有任何影响.这点与C#中的HashSet有区别. update方法: 1 s = {1,2,3,4,5} 2 s.update({3,5,7},[4,6]) 3 print(s)# {1, 2, 3, 4, 5, 6, 7} 同list的extend方法,将原来没有的元素添加进集合.update可以接受一个到多个可遍历的集合

python中集合-set

集合-set 集合是高中数学中的一个概念 一堆确定的无序的唯一的数据,集合中每一个数据成为一个元素 # 集合的定义 s = set() print(type(s)) print(s) print("*"*30) # 此时,大括号内一定要有值,否则定义出的是一个dict s = {} print(type(s)) print(s) print("*"*30) s = {1,2,3,4,5} print(type(s)) print(s) <class 'set'

python中集合的用法

一.创建集合 1.特点 存放不同的元素 无序 不可变类型(数字.字符串.元组) 2.创建集合 s=set('hello') print(s) s=set(['alex','alex','sb']) print(s) s={1,2,3,4,5,6} 3.集合的基本用法 (1)添加 s.add('s') (2)清除 s.clear() (3)复制 s.copy() (4)删除 remove()指定删除某一个元素 若删除元素不存在则报错 discard('sbbbb') 删除元素不存在不会报错 (5)

python中集合

去重 无序 没有索引 #remove 删除元素 >>> s1 = {1,2,3,4,5} >>> s1.remove(2) >>> print(s1) {1, 3, 4, 5} #pop 剪切 >>> s1 = {1,2,3,4,5} >>> res = s1.pop() >>> print(res) 1 #add 添加 >>> s1 = {1,2,3,4,5} >>&

matlab中怎样删除重复元素使得和Python中集合set的功能一样

1 >> m=[1,1,2,2,3]; 2 >> m 3 4 m = 5 6 1 1 2 2 3 7 8 >> b=unique(m) 9 10 b = 11 12 1 2 3 使用unique函数;从而去掉重复元素,统计出现的元素及元素个数; 例如: 1 >> a=[1,2,3,2;5,2,9,7;8,0,6,3]; 2 >> a 3 4 a = 5 6 1 2 3 2 7 5 2 9 7 8 8 0 6 3 9 10 >> b=u