基础数据类型之集合

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)

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基础数据类型之集合 - Python技术站

(0)
上一篇 2023年4月2日
下一篇 2023年4月2日

相关文章

  • python中的内置函数

    内置函数 # 1.abs函数 print(abs(-1)) # 绝对值方法 # 2.all函数 print(all([1,’aaa’,”])) # false print(all([])) # true #all方法里面是一个可迭代对象,all会自动将这个对象for循环一下,如果所有的值为true,则返回true;如果可迭代对象为空,则返回true # 3…

    Python开发 2023年4月2日
    00
  • 上线流程

    上线流程 上线前准备 首先将跑在本地版本的项目,上传至远端(gitee、github上) 重新复制一份项目的配置文件,可以命名为pro.py(dev为开发阶段的配置文件,pro为上线的配置文件) 在pro文件内,修改以下配置项: # 将调式模式改为false DEBUG = False # 运行的host地址,正常就是写服务端的ip地址,不知道可以先写* A…

    2023年4月2日
    00
  • django中的路由层

    1.什么是路由层 简单来说,就是通过路由层中的path函数,告诉django遇到那个url,执行那个视图函数 2.路由层的请求流程 1.客户在浏览器输入网址→请求进入django的setting.py中的ROOT_URLCONF寻找指定使用的urls.py文件位置(如果中间件有路由功能,urls文件功能会被其替代) 2.Django会先匹配项目目录下的pat…

    Python开发 2023年4月2日
    00
  • 基于tcp协议的套接字通信

    1、套接字socket简介 Socket是应用层与TCP/UDP协议通信的中间软件抽象层,它充当一种接口的角色!封装了传输层以下的东西。 1.1基于tcp的socket通信流程图 2.tcp服务端搭建 需求:模拟两个手机的通话 from ipaddress import IPv4Address import socket # 1.买手机 # socket.A…

    2023年4月2日
    00
  • 序列化组件

    序列化组件的三大功能 序列化,序列化器会把模型对象转换成字典,经过response以后变成json字符串 反序列化,把客户端发送过来的数据,经过request以后变成字典,序列化器可以把字典转成模型 反序列化时同时会完成数据校验功能 序列化器Serializer使用方法 查询单个数据语法: 1.在setting.py中的app配置里注册一下drf 2.在dj…

    2023年4月2日
    00
  • 认证

    认证的实现 使用步骤: # 通过认证类完成,使用步骤 1 写一个认证类,继承BaseAuthentication 2 重写authenticate方法,在内部做认证 3 如果认证通过,返回2个值 4 认证不通过抛AuthenticationFailed异常 5 只要返回了两个值,在后续的request.user 就是当前登录用户 认证源码分析: https:…

    Python开发 2023年4月2日
    00
  • while循环语法

    while循环 循环的基本语法和使用 count = 0 # 定义一个初始条件 while 条件: 代码1 代码2 … count += 1 # 额,每循环一次+1,用来结束循环 退出循环的两种方式 方式一:将while后面的条件改成false,退出循环!该方式就是基本语法的使用方式!注意:改成false提交后面的代码还会执行,直到第二次判断开始结束循环…

    Python开发 2023年4月2日
    00
  • 数据库配置限)不用root用户操作数据库了(为数据库创建用户,并赋予权限)

    步骤 1.为路飞项目创建数据库 在mysql终端输入以下代码: create database luffy charset=utf8; 2.创建数据库用户 create user ‘username’@’host’ identified by ‘password’; 其中username为自定义的用户名;host为登录域名,host为’%’时表示为 任意IP…

    Python开发 2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部