小甲鱼——集合

一·什么是集合 

type({})
<class 'dict'>   #字典
type({"one"})
<class 'set'>  #集合

type({"one":1})
<class 'dict'>   #字典

跟字典一样,集合最大的特性就是——唯一性

即:集合中的所有元素,都应该是独一无二的并且无序。

二·创建集合的三种方法

1.第一种方法

{"FishC","python"}
{'FishC', 'python'}

2.第二种方法:利用集合推导式   

{s for s in "FishC"}
{'i', 'h', 'C', 's', 'F'}

在这里,我们可以发现集合无序这个特征

3.第三种方法:使用类型构造器,也就是set

set("FishC")
{'i', 'h', 'C', 's', 'F'}

#注意# 由于集合是无序的,所以我们不能使用下标索引的方式,来对他进行访问

s = set("FishC")
s[0]
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    s[0]
TypeError: 'set' object is not subscriptable

 就比如上面这样

2.我们可以使用 in 或  not in 对他进行判断,判断某个元素是否存在于集合中。

'C' in s
True
'c' not in s
True

3.如果我们想要访问集合中的元素,我们可以使用迭代的方法,就是它的无序性

for each in s:
    print(each)

    
i
h
C
s
F

 4.集合的唯一性    利用集合可以轻松的完成去重的操作

set([1,1,2,3,5])
{1, 2, 3, 5}

在实际的开发中,我们总是要去检测,一个列表中是否存在相同的元素,在没有学习集合之前,我们很可能通过迭代来统计每个元素出现的次数,从而判断是否是唯一性,

s = ([1,1,2,3,5])
len(s) == len(set(s))
False

set(s)是一个集合,集合它会去重,如果去重之前和去重之后,它是相等的,说明他们元素的数量是相等,如果不相等,就说明一定有重复的元素。

5.那么跟字典和序列对象一样,集合对象也包含了很多内置方法,

首先,列表,元组,字符串,字典都有同样一个copy方法,集合也不例外

集合就是一个浅拷贝的一个操作,

t = s.copy()
t
[1, 1, 2, 3, 5]

6.如果我们要检测两个集合之间是否毫不相干,我们使用一个叫  “is destroyed”  方法

s = set("FishC")     #创建一个新的变量,放到s里面去
s
{'s', 'F', 'C', 'h', 'i'}
s.isdisjoint(set("python"))   #检测FishC是否和python毫不相干
False                  #说明有关

#现在换成传入JAVA
s.isdisjoint(set("JAVA"))
True          #说明真的毫无相干

上面我们使用set把它变成一个集合类型,使用方法的话,我们可以直接传入一个字符串,只要是传入一个可迭代对象就可以,例如

s.isdisjoint("JAVA")
True
s.isdisjoint("python")
False

7.如果我们要检测一个集合,是否是另一个集合的子集,我们可以使用  “issubset”  


s.issubset("FishC.com.cn")
True

这样就说明他是它的一个子集

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值