python的set简单了解

本文介绍了Python集合(set)的基础知识,包括如何创建、显示、添加和删除元素。集合是一个无序且不允许重复元素的容器,常用于进行数学上的交集、并集等操作。示例展示了使用数字、字符串和元组创建集合,并通过add()和remove()方法进行元素的增删。此外,还演示了集合的交集(&)和并集(|)运算。
摘要由CSDN通过智能技术生成

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。


1.创建一个set,需要提供一个list作为输入集合:

s=set([1,2,3,3])
print(s)

结果:(重复元素在set中自动被过滤)

{1, 2, 3}

注意,传入的参数[1, 2, 3,3]是一个list,而显示的{1, 2, 3}只是告诉你这个set内部有1,2,3这3个元素,显示的顺序不表示set是有序的。

所以:set([parm1,parm2,parm3...])中list[ ]里的元素只能是不可变的类型数字,元组,字符串

#数字
s=set([1,2,3,3])
#字符串
s1=set(['a','b','c','c'])
#元组
s2=set([(10,11,12,12)])
print(s)
print(s1)
print(s2)
{1, 2, 3}
{'a', 'b', 'c'}
{(10, 11, 12, 12)}

2.set的作用:set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:

交集和并集操作

s1=set([1,2,3])
s2=set([2,3,4])
s3=s1&s2
print(s3)
s4=s1|s2
print(s4)

结果

{2, 3}
{1, 2, 3, 4}

3.set增加和删除元素

增加和删除元素都是对原本的set造成影响

通过add(key)方法添加元素到set中,重复添加的值不会有效果:

s=set([1,2,3])
#添加数字4,添加成功
s.add(4)
print(s)
#添加数字3,重复添加的值3不会有效果
s.add(3)
print(s)
{1, 2, 3, 4}
{1, 2, 3, 4}

通过remove(key)方法删除元素:

s=set([1,2,3])
s.remove(1)
print(s)
{2, 3}

Python中的set profiling是指使用cProfile模块进行程序性能分析的过程。cProfile是一个内置的性能分析工具,它可以帮助开发了解程序运行时各个部分的性能表现,比如哪些函数被调用了多少次,以及每个函数消耗了多少时间。 cProfile模块提供了一个简单的方法来记录程序中函数的调用次数和时间,从而帮助识别程序的性能瓶颈。它记录的指标包括: 1. ncalls:表示函数调用的次数。 2. tottime:表示函数内部的总运行时间,不包括调用其他函数的时间。 3. percall:表示每个函数调用的平均运行时间,是tottime除以ncalls的结果。 4. cumtime:表示函数累计的运行时间,包括调用其他函数的时间。 5. percall:表示每个函数调用的累计平均运行时间,是cumtime除以ncalls的结果。 6.文件名:行号:指出函数所在的文件和行号。 7.函数名:具体执行的函数名。 使用cProfile进行性能分析的基本步骤如下: 1. 导入cProfile模块。 2. 使用cProfile.run()函数来运行待分析的代码。 3. 分析输出结果,找出需要优化的函数。 4. 针对性能瓶颈进行优化。 例如,如果你想要分析名为my_script.py的Python脚本,可以使用以下命令: ```python import cProfile cProfile.run('exec(open("my_script.py").read())') ``` 或者,如果你想要分析一个函数的性能,可以直接将函数作为参数传递给cProfile.run(): ```python import cProfile def my_function(): # 你的代码逻辑 pass cProfile.run('my_function()') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值