热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

数据类型(集合)

集合(set){}空的时候是默认为字典,有值就是集合数学概念:由一个或多个确定的元素所构成的整体叫做集合。特征1.确定性(元素必须可hash)2.互异性(去重)3.无序性(集合中的

集合(set){}
       空的时候是默认为字典,有值就是集合

数学概念:由一个或多个确定的元素所构成的整体叫做集合。

特征

1.确定性(元素必须可hash)

2.互异性(去重)

3.无序性(集合中的元素没有先后之分),如集合{3,4,5}和{3,5,4}算作同一个集合。

作用:

去重 把一个列表变成集合,就自动去重了

关系测试 测试两组数据之间的交集、差集和并集


关系运算

&.&=:交集

iphone7 = {"lily","jack","peiqi","shanshan"}
iphone8 = {"rose","nicole","lily","shanshan","lucy"}
print(iphone7 & iphone8)#交集  

输出

{‘lily‘, ‘shanshan‘}

|,|=:合集,也叫并集——linux班和python班的所有同学

这里同学们不可以单纯的认为python班的人数+linux班的人数就是结果,如果两班人数相加应该是6人。但学习Linux班的张三和李四还同时在python班学习,因此我们实际上总共只有四个学员。求并集除了合并效果之外还有去重功能

技术分享图片

l= {‘张三‘,‘李四‘,‘老男孩‘}
p = {‘张三‘,‘李四‘,‘alex‘}
print(l.union(p))
print(l|p)

-,-=:差集

set1.difference(set2)set

(只iphone7,而没有iphone8)

iphone7 = {"lily","jack","peiqi","shanshan"}
iphone8 = {"rose","nicole","lily","shanshan","lucy"}
#print(iphone7 - iphone8)#差集
#or
print(iphone7.difference(iphone8))

  输出

{‘jack‘, ‘peiqi‘}


^,^=:对称差集——只在linux班或只在python班的同学

技术分享图片

a = {1,2,3}
b = {2,3,4,5}
print(a.symmetric_difference(b))
print(a^b)

包含关系

in,not in:判断某元素是否在集合内
==,!=:判断两个集合是否相等

两个集合之间一般有三种关系,相交、包含、不相交。在Python中分别用下面的方法判断:

  • set.isdisjoint(s):判断两个集合是不是不相交
  • set.issuperset(s):判断集合是不是包含其他集合,等同于a>=b
  • set.issubset(s):判断集合是不是被其他集合包含,等同于a<=b

集合的常用操作

列表(元组)转成集合

l = [1,2,3,4,5,6,7,8]
print(type(l))
n = set(l)#转成集合
print(type(n))

  输出


增加

单个元素的增加 : add(),add的作用类似列表中的append

对序列的增加 : update(),update方法可以支持同时传入多个参数,将两个集合连接起来:

s = {1,2}
s.add(3)#单个增加
print(s)
s.update([4,5],[3,6,7])#可以传入多个数据
print(s)

  输出

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

删除

set.discard(x)不会抛出异常

set.remove(x)会抛出KeyError错误  #想删谁,括号里写谁

pop():由于集合是无序的,pop返回的结果不能确定,且当集合为空时调用pop会抛出KeyError错误,

clear():清空集合

s = {1,2,3,4,5,6,7,8,9}
s.discard(10)
print(s)
s.discard(10)#删除指定一个
print(s)
s.pop()#随机删除一个
print(s)
s.clear()#清空
print(s)

  输出

{1, 2, 3, 4, 5, 6, 7, 8, 9}
{1, 2, 3, 4, 5, 6, 7, 8, 9}
{2, 3, 4, 5, 6, 7, 8, 9}
set()

数据类型(集合)


推荐阅读
author-avatar
herogan
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有