Python--补习篇--set集合

前面学了list列表,tuple元组,dict字典,本章我们就来学习一下set集合。简洁

集合 set 是装有独特值的无序“袋子”。一个简单的集合可以包含任何数据类型的值。如果有两个集合,则可以执行像联合、交 集以及集合求差等标准集合运算。

那么具体什么是集合?

a_ = {1}
 print(a)
print(type(a_))

最明显的特征即是一个花括号"{}"括起来,上述的例子中可以得到打印结果的type是<class 'set'>,这就是集合。

a_ = {1, 2}

print(a_)

要创建多值集合,请将值用逗号分开,并用花括号将所有值 包裹起来。

列表转集合

用上set方法即可完成转换

list_ = ['a', 'b', 'c']
print(set(list_))

转换了之后list_是不是就是集合了呢,并不是。它还是列表。它是初始变量,初始值 就是列表,我们并没有改变初始值。只是输出转化。

空集合

a_ = set()
print(a_)

空集合就直接不给值就好了,与其说值不如直接说成员更合适一些。

修改集合

添加值add()

list_ = {'a', 'b', 'c'}
list_.add('tuoma')
list_1 = {1, 2, 3}
list_1.add(4)
print(list_)
print(list_1)

这里我举例了两个例子,字符串形式的,一个是整数类型的。为什么要举两个例子。

字符串形式的,如果像上述这么写,print出来是无序的。前面说过了。随机排布,所以这里add后,值也是随机出现在四个字符串其中的某一个位置,每一次print位置可能不一样。但是如果是整数,就会按照原来的形式输出。并将add的值写在后面。

update()

list_ = {'a', 'b', 'c'}
list_.update({1, 2, 3})
print(list_)
list_.update({'tuoma'}, {'wubieshi'})
print(list_)
list_.update([1, 2, 'tuoma'])
print(list_)

这里重点来了,我写了三种添加值的形式,这里不是叫你看无序了。看的是update()方法。

{'c', 1, 2, 3, 'a', 'b'}
{'c', 1, 2, 3, 'a', 'wubieshi', 'tuoma', 'b'}
{'c', 1, 2, 3, 'a', 'wubieshi', 'tuoma', 'b'}

结果是这样的,不管是多个集合还是一个集合,还是列表。update() 方法仅接受一个集合作为参数,并将其所有成员添 加到初始列表中。其行为方式就像是对参数集合中的每个成员调用 add() 方法。update() 方法还可接受一些其它数据类型的对象作为参数, 包括列表。如果调用时传入列表,update() 将会把列表中所有的元素添加到初始集合中。

注意:这里还是有去重的。并不只是会添加值进去。

删除值

有三种方法,有两种前面也是有所接触的。具体看看:

discard()

1

list_ = {1, 3, 5, 7, 9, 11}
list_.discard(7)
print(list_)

discard() 接受一个单值作为参数,并从集合中删除该值。但是如果你删除一个不存在的值,它是不会报错的,例如list_discard(6)。

remove()

2

list_ = {1, 3, 5, 7, 9, 11}
list_.remove(7)
print(list_)

remove() 方法也接受一个单值作为参数,也从集合中将其删除。 如果删除一个不存在的值它会抛出异常,告诉你错误,例如list_remove(6)。

Traceback (most recent call last):
File "F:\selenium_demo\shopX_demo\index\book.py", line 12, in <module>
  list_.remove(6)
KeyError: 6

pop()

3

list_ = {'1', '3', '5', 7, '9', 11}
list_.pop()
print(list_)

pop() 方法从集合中删除某个值,并返回该值。然而,由于集合是无序的,并没有“最后一个”值的概念,因此无法控制删除的是哪一个值。它基本上是随机的。这也是这里为什么不用整数做演示的原因,别弄混了。此方法自己多运行看结果。

clear()

list_ = {'1', '3', '5', 7, '9', 11}
list_.clear()
print(list_)

clear() 方法删除集合中 所有 的值,留下一个空集合。它等价于 a_set = set(),该语句创建一个新的空集合,并用之覆盖a_set 变量的之前的值。

如果你clear()后还运行了pop(),亦或者其他的方法就会抛出异常哦。

常见集合操作是否存在集合中

list_ = {1, 3, 5, 7, 9, 11}
i = 7 in list_
print(i)

这个用法还是很常见得,用于判断7是否存在于list_集合中。返回TRUE OR FALSE

union()并集

list_ = {1, 3, 5, 7, 9, 11}
list_1 = {2, 4, 6, 8, 10, 12}
o = list_.union(list_1)
print(o)

将两集合整理成一个新的集合,去重!

intersection()交集

list_ = {1, 3, 5, 7, 9, 11}
list_1 = {1, 2, 4, 6, 8, 10, 12}
i = list_.intersection(list_1)
print(i)

intersection() 方法返回一个新集合,其中装着 "同时" 在两个集合中出现的所有元素。

difference()求差

list_ = {1, 3, 5, 7, 9, 11}
list_1 = {1, 3, 4, 6, 8, 10, 12}
i = list_.difference(list_1)
print(i)

difference() 方法返回的新集合中,输出list_中有list_1中没有的值。

symmetric_difference()

list_ = {1, 3, 5, 7, 9, 11}
list_1 = {1, 3, 4, 6, 8, 10, 12}
i = list_.symmetric_difference(list_1)
print(i)

symmetric_difference() 方法返回一个新集合,其中装着所有只在其中一个 集合中出现的元素。也就有点类似于,把两个集合中重复的值去掉了。

总结

在自动化中集合用的比较的少,此处就不做总结了,下章见!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔跑的托马

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值