首页 > 其他分享 >基础数据类型之集合

基础数据类型之集合

时间:2022-09-01 08:33:38浏览次数:38  
标签:数据类型 元素 基础 print res 集合 friend2 friend1

1.集合的定义

在{}内用逗号分开多个元素,多个元素满足以下三个条件:

1.集合元素必须是不可变类型
2.集合元素无序
3.集合内元素没有重复(打印出来会自动去重)

d = {} 默认是定义空字典

需要定义空集合,需要使用s = set()

2,集合的作用

(1)关系运算

# 如何取出这两个人共同的朋友呢?
friend1=['zhang','yang','liu','tao']
friend2=['zhang','yang','xiao','wang']
# 没有学集合之前可以可以采取for循环的方法,如下:
l=[]
for i in friend1:
    if i in friend2:
        l.append(i)
print(l)

集合中提供了一种更简单的方法,具体见4内置方法

(2)去重

3.类型转换

使用set()方法,将括号里的数据转为集合类型,set方法自动对传入的数据调用了for循环的方法,循环之后的数据必须满足集合元素的要求!!

4.内置方法

4.1关系运算

friend1={'zhang','yang','liu','tao'}
friend2={'zhang','yang','xiao','wang'}

1.取交集,取出两者共同的好友

res = friend1 & friend2
print(res)

2.取并集,取出所有的好友

res = friend1 | friend2
print(res)

3.取差集,取friend1独有的好友

res = friend1 - friend2
print(res)
# 留下谁独有的就用谁去减另一个

4.取对称差集,取friend1和friend2独有的好友

print(friend1 ^ friend2)

5.父子集,包含关系

s1={1,2,3}
s2={1,2}
print(s1>s2) # true,s1是s2的父亲

4.2去重

1.只能针对不可变类型去重

priny(set([1,1,1,2,3])) # 结果为{1,2,3}

2.无法保证原来的顺序

4.3 成员运算 in\not in

4.4 len长度方法

4.5 for循环集合取值

4.6其他内置方法

增删改查

# 1.删除集合中的元素discard方法
s={1,2,3}
s.discard(3) # 删除元素不存在不报错
s.remove(4) # 删除元素不存在报错
res = s.pop() #随机删一个并返回改删除值

# 2.更新集合
s.update({1,3,5,6}) # 原集合不存在的元素添加,存在的去重

# 3.添加一个元素
s.add(8)

标签:数据类型,元素,基础,print,res,集合,friend2,friend1
From: https://www.cnblogs.com/suncolor/p/16641376.html

相关文章

  • 关于茶的若干基础知识
    一、茶的命名方法有哪些?茶的命名,除以形状、色香味和茶树品种等为依据,还有以生产地区、采摘时期和技术措施以及销路等不同而得名。所谓七大茶类,就是人们常说的绿茶、红茶......
  • 公共基础
    数据结构算法解题方案的准确而完整的描述基本特征可行性:能解决问题确定性:每个步骤必须是明确定义的,不许模棱两可,也不许有多义性有穷性:算法必须在有限时间内做完,在执......
  • Java入门-基础语法(基本运算符)
    基本运算符优先级算数运算符:+,-,*,/,%(取余),++,--赋值运算符:=关系运算符:>,<,>=,<=,==,!=,instanceof逻辑关系符:&&,||,!位运算符:&,|,^,~,>>,<<,>>(了解)条件运算符:?扩......
  • Java入门-基础语法(JavaDoc)
    JavaDoc用来生成自己的API文档,参数信息:@author@version@since@param@return@throws。使用命令行生成Doc.java编译成一份文档来帮助阅读(javadoc参数Doc.java),其中......
  • Java入门-基础语法(包机制)
    包机制更好的组织类,用于区别类名的命名空间,包的本质是文件夹,类的本质是文件。一般利用公司域名倒置作为包名:com.baidu.www,有的时候使用某一个包的成员,需要在程序中明确导......
  • 基于padavan(openwrt) MIPS 的OpenSSL编译安装和编程基础
    设备还是之前那个e8820s 先把gccmakeperl装了opkginstallgccmakeperl这里有个问题,就是openssl1.1.0之后的版本要求perl5.10,opkg安装的是5.28,运行./Con......
  • 网络基础及使用socket进行cs通信
    视频参考:https://www.bilibili.com/video/BV114411W7id?p=61&spm_id_from=pageDriver&vd_source=cb0d3da7202ac90dd1d32ce6960fb3b7网络两台计算机通过协议和网络进行通......
  • List泛型集合之基本使用
     数组//变量.单个数据intnumA=10;floatnumB=3.14f;boolisstart=false;Console.WriteLi......
  • 【Java基础】类和对象
    1.类人这个类有3个属性和会走路的方法2.对象新建两个具体的对象,每个对象都有类的属性和方法publicstaticvoidmain(String[]args){Personzhangsan......
  • 进程与线程基础
    1.一个进程可以理解为一个应用程序,一个进程通常包括多个线程。进程可以理解为一个公司,线程理解为公司的员工。2.进程A与进程B之间内存独立不共享线程A与线程B之间堆与方法......