Python数据结构(三):集合

简介: Python数据结构(三):集合

1.集合类型的定义


集合set是Python中的一种数据结构,它与列表相似,可以用来存储多个数据元素,不同之处是,集合由不同的元素组成,可以起到去重的作用,并且元素的存放是无序的,需要注意的是,集合中的元素不能是列表,集合,字典等可变对象。

集合类型与数学中的集合概念一致,集合元素不可更改,不能是可变数据类型。

那么创建一个集合,我们可以采用三种方法:如下👇👇👇


(1)使用花括号创建


s1={"红色" , "绿色" , "蓝色" , "黑色" , "红色"}
print(s1)
输出结果如下:
{'黑色', '红色', '绿色', '蓝色'}

(2)使用set()函数创建


s1={"红色" , "绿色" , "蓝色" , "黑色" , "红色"}
s2=set(s1)
print(s2)
输出结果如下:
{'红色', '黑色', '绿色', '蓝色'}
s1=set("pypy123")
print(s1)
输出结果如下:
{'y', 'p', '2', '1', '3'}

(3)使用推导式创建

s1={1,1,2,2,3,3,4,4,5}
s2={x*2 for x in s1}
print(s2)
s3={x for x in s1 if x%2!=0}
print(s3)
输出结果如下:
{2, 4, 6, 8, 10}
{1, 3, 5}

2.集合类型的基本操作


(1)访问集合中的元素

#使用for循环
s1=set(["Adam" , "Lisa" , "Bart"])
print(s1)
for name in s1 :
            print(name)
输出结果如下:
{'Bart', 'Lisa', 'Adam'}
Bart
Lisa
Adam


(2)集合操作函数和方法


下面我们介绍几种集合的处理方法,👇👇👇




那么我们通过以下几个小程序的例子,来更好的理解这些方法!!!👇👇👇


#s.add()
s1=set(["A" , "B" , "C" , "D"])
print(s1)
s1.add("E")
print(s1)
输出结果如下:
{'B', 'C', 'A', 'D'}
{'B', 'E', 'D', 'C', 'A'}
#集合中元素是无序的,所以添加元素也是随机的在任意一个位置来添加。


#s.remove()
s1=set(["A" , "B" , "C" , "D"])
print(s1)
s1.remove("E")
print(s1)
输出结果如下:
{'B', 'A', 'C', 'D'}
Traceback (most recent call last):
  File "D:/GameDownload/Python/python代码体验区/python基础1.py", line 3, in <module>
    s1.remove("E")
KeyError: 'E'
#可以看到程序报错,这是因为所要删除的元素"E"并不在集合中,所以s.remove()方法就会报错。
#s.discard()
s1=set(["A" , "B" , "C" , "D"])
print(s1)
s1.discard("E")
print(s1)
输出结果如下:
{'A', 'C', 'D', 'B'}
{'A', 'C', 'D', 'B'}
#s.discard()方法同样是删除集合中的元素,它与s.remove()方法不同的是,
#如果此元素在集合中那么就正常删除;如果不在,则输出原集合,程序并不会报错!!!
#s.clear()
s1=set(["A" , "B" , "C" , "D"])
print(s1)
s1.clear() #清空集合
print(s1)
输出结果如下:
{'A', 'D', 'B', 'C'}
set()
#s.pop()
s1=set(["A" , "B" , "C" , "D"])
print(s1)
print(s1.pop()) #随机的返回集合中的任何一个元素
输出结果如下:
{'D', 'A', 'B', 'C'}
D
#如果这是一个空集合,则s.pop()会产生KeyError错误!!!
#del s
s1=set(["A" , "B" , "C" , "D"])
print(s1)
del s1
print(s1)
输出结果如下:
{'C', 'B', 'A', 'D'}
Traceback (most recent call last):
  File "D:/GameDownload/Python/python代码体验区/python基础1.py", line 4, in <module>
    print(s1)
NameError: name 's1' is not defined
#删除集合s1之后,此集合已不存在,再进行输出,程序就会产生NameError错误!!!


#len(),x in s,x not in s
s1=set(["A" , "B" , "C" , "D"])
print(s1)
print(len(s1))
print("A" in s1)
print("D" not in s1)
输出结果如下:
{'D', 'A', 'B', 'C'}
4
True
False
#set()
s1=list(["A" , "B" , "C" , "D"])
s2=tuple(["A" , "B" , "C" , "D"])
print(set(s1))
print(set(s2))
输出结果如下:
{'C', 'A', 'D', 'B'}
{'C', 'A', 'D', 'B'}


相关文章
|
2月前
|
存储 监控 安全
企业上网监控系统中红黑树数据结构的 Python 算法实现与应用研究
企业上网监控系统需高效处理海量数据,传统数据结构存在性能瓶颈。红黑树通过自平衡机制,确保查找、插入、删除操作的时间复杂度稳定在 O(log n),适用于网络记录存储、设备信息维护及安全事件排序等场景。本文分析红黑树的理论基础、应用场景及 Python 实现,并探讨其在企业监控系统中的实践价值,提升系统性能与稳定性。
55 1
|
3月前
|
存储 安全 Java
Java 集合面试题从数据结构到 HashMap 源码剖析详解及长尾考点梳理
本文深入解析Java集合框架,涵盖基础概念、常见集合类型及HashMap的底层数据结构与源码实现。从Collection、Map到Iterator接口,逐一剖析其特性与应用场景。重点解读HashMap在JDK1.7与1.8中的数据结构演变,包括数组+链表+红黑树优化,以及put方法和扩容机制的实现细节。结合订单管理与用户权限管理等实际案例,展示集合框架的应用价值,助你全面掌握相关知识,轻松应对面试与开发需求。
185 3
|
11月前
|
安全 网络安全 文件存储
思科设备巡检命令Python脚本大集合
【10月更文挑战第18天】
339 1
思科设备巡检命令Python脚本大集合
|
5月前
|
存储 缓存 安全
Python frozenset 集合详解:不可变集合的终极指南
frozenset是Python中一个常被忽视但极具价值的不可变集合类型。本文深入解析其本质、操作方法与应用场景,揭示其通过不可变性带来的安全性与性能优势。从底层实现到实战案例,涵盖字典键使用、缓存优化及类型注解等高级场景。同时对比性能数据,提供最佳实践指南,并展望Python 3.11+中的优化。掌握frozenset,可为代码带来更强健性与效率,适合多种特定需求场景。
188 5
|
6月前
|
存储 人工智能 索引
Python数据结构:列表、元组、字典、集合
Python 中的列表、元组、字典和集合是常用数据结构。列表(List)是有序可变集合,支持增删改查操作;元组(Tuple)与列表类似但不可变,适合存储固定数据;字典(Dictionary)以键值对形式存储,无序可变,便于快速查找和修改;集合(Set)为无序不重复集合,支持高效集合运算如并集、交集等。根据需求选择合适的数据结构,可提升代码效率与可读性。
|
9月前
|
存储 缓存 监控
局域网屏幕监控系统中的Python数据结构与算法实现
局域网屏幕监控系统用于实时捕获和监控局域网内多台设备的屏幕内容。本文介绍了一种基于Python双端队列(Deque)实现的滑动窗口数据缓存机制,以处理连续的屏幕帧数据流。通过固定长度的窗口,高效增删数据,确保低延迟显示和存储。该算法适用于数据压缩、异常检测等场景,保证系统在高负载下稳定运行。 本文转载自:https://www.vipshare.com
240 66
|
10月前
|
存储 开发者 索引
Python 中常见的数据结构
这些数据结构各有特点和适用场景,在不同的编程任务中发挥着重要作用。开发者需要根据具体需求选择合适的数据结构,以提高程序的效率和性能
234 59
|
10月前
|
存储 索引 Python
Python编程数据结构的深入理解
深入理解 Python 中的数据结构是提高编程能力的重要途径。通过合理选择和使用数据结构,可以提高程序的效率和质量
245 59
|
10月前
|
存储 开发者 Python
Python 中的数据结构与其他编程语言数据结构的区别
不同编程语言都有其设计理念和应用场景,开发者需要根据具体需求和语言特点来选择合适的数据结构
223 55
|
9月前
|
存储 运维 监控
探索局域网电脑监控软件:Python算法与数据结构的巧妙结合
在数字化时代,局域网电脑监控软件成为企业管理和IT运维的重要工具,确保数据安全和网络稳定。本文探讨其背后的关键技术——Python中的算法与数据结构,如字典用于高效存储设备信息,以及数据收集、异常检测和聚合算法提升监控效率。通过Python代码示例,展示了如何实现基本监控功能,帮助读者理解其工作原理并激发技术兴趣。
179 20

热门文章

最新文章

推荐镜像

更多