集合 set的基础认知

今天是最后一个容器,结尾总结下容器的特点

集合 set

  集合是可变的容器

  集合内的对象都是唯一的(不能重复多次的)

  集合是无序的存储结构,集合中的数据没有先后顺序关系

  集合内的元素必须是不可变对象

  集合是可迭代对象

  集合是相当于只有键没有值得字典(键则是集合的数据)

  

创建空的集合:

Set()

创建非空的集合:

S = {1,2,3,4}

 

集合的构造函数set

  Set()  创建一个空的集合对象(不能用{}来创建集合)

  Set(iterable)  用可迭代对象创建一个新的集合对象

 

示例:

  S=set()

  S={2,3,54,65}

  S = set(abc)   # s = {a,b,c}

  S= set({1:1, 2:2, 5:5}) # s={1,2,5}

  S= set(range(1:10:3))  # s = {1:4:7}

 

集合的运算:

  交集,并集,补集,对称补集,子集,超集

    &    |      -       ^      < <=  > >=   ==  !=  in / not in

& 生成两个集合的交集

  S1 = {1,2,3}

  S2 = {2,3,4}

  S1 & s2  # {2,3}

| 生成两个集合的并集

  S1 = {1,2,3}

  S2 = {2,3,4}

  S1 | s2  # {1,2,3,4}

- 生成两个集合的补集

S1 = {1,2,3}

S2 = {2,3,4}

S1 - s2  # {1}

^  生成两个集合的对称补集

   S1 = {1,2,3}

   S2 = {2,3,4}

   S1 | s2  # {1,4}

>  判断一个集合是另个一集合的超集

<  判断一个集合是另个一集合的子集

{1,2,3}>{1,2}  # True

{1,2}<{1,2,3}  # True

== / != 集合相同和不同

  {1,2,3}=={3,2,1}   # True

  {1,2,3}!={3,2,4}   # True

 

In / not in 运算符

  In 等同于字典中的in,用于集合中,当某个值存在于集合中,返回True否则False

  Not in in相反,判断速度快于序列。

 

能用于集合的函数

Len(s)       

Max(s)

Min(s)

Sum(s)

Any(s)

All(s)

集合是可迭代对象

集合推导式

  集合推导式是用可迭代对象生成集合的表达式

  语法:

{表达式 for 变量 in 可迭代对象 [if 真值表达式]}

:[] 内的内容可省略

示例:

  Numbers=(1,2,3,4,4,4,5,6)

  S={x for x in numbers} # 去除重复的元素

  >>> S

{1, 2, 3, 4, 5, 6}

 

列表字典集合对象的优缺点:

1. 它们都为可变

2. 列表的尾部插入速度比较快,查中间插入和头插入数据速度慢

3. 列表有序

4. 字典添加,删除,修改速度慢于裂变

5. 集合的添加,删除快于列表,且不能存储重复元素

 

推导式种类

  列表推导式  l=(x for x in range() if)

  字典推导式  D = {x:x**2 for x in range(10)}

  集合推导式  S={x for x in numbers}

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值