当前位置: 首页 > article >正文

Python学习_集合

集合

集合的定义

# 集合的定义:大括号包围元素,每个元素间用逗号来隔开;
# 与字典的区别:字典键值对一一对应的关系,集合是没有的;
# 定义:直接{}
s1={10,20,30}
print(type(s1)) # <class 'set'>
print(s1) # {10, 20, 30}

# 使用set()函数
s2=set('abcdef')
print(type(s2)) # <class 'set'>
print(s2) # {'a', 'e', 'c', 'b', 'd', 'f'}

# 定义一个空集合
# 区别:
s3={}        # 系统认为这是定义一个空字典
print(type(s3)) # <class 'dict'>

s4=set()        # 定义一个空集合
print(type(s4)) # <class 'set'>

集合的特点

特点 :
a.集合中的数值不重复。
b.集合是无序,不支持下标操作。
c.可以用于元组或者列表去重。

集合的操作

在这里插入图片描述

add()方法 :添加具体某个元素
update()方法 :追加的数据必须是可迭代对象(如列表、集合、字典、元组)

# 集合的特性:无序不重复的数据类型,不支持下标操作
# 集合的常见操作
# 一、增
# 1. add
s1={10,20}
s1.add(100)
print(s1) # {100, 10, 20}
s1.add(10)
print(s1) # {100, 10, 20} 自动去重

# 2.update 追加的数据必须是可迭代对象(如列表、集合、字典、元组)
s2={10,20,30}
# s2.update(100) # TypeError: 'int' object is not iterable  整形不是可迭代对象
# print(s2)
# 添加列表
s2.update([100]) # [100]类型为列表,是一个可迭代对象
print(s2)  # {100, 10, 20, 30}
# 添加元组
s2.update((11,22))
print(s2) # {100, 10, 11, 20, 22, 30}
# 添加字符串
s2.update('xsy123')
print(s2) # {100, 's', 'x', 10, 11, 20, 22, '2', '3', 'y', 30, '1'}
# 添加集合
s2.update({13,24})
print(s2) # {'x', '1', 100, 10, 11, '2', 13, '3', 'y', 20, 's', 22, 24, 30}
# 添加字典
s2.update({'age':19}) # 只添加了key(字典的键值对是一个整体,代表一个元素)
print(s2) # {100, 's', 'y', 10, 11, 'age', 13, 20, '1', 22, 'x', '2', '3', 24, 30}

# 删除
# 1.remove()  删除集合中指定的数据,如果数据不存在则报错
s1={10,20}
print(s1)
s1.remove(10)
print(s1) # {20}
s1.remove(10) # KeyError: 10
print(s1) # 集合中没有该数则报错

# 2.discard()丢弃 删除集合中指定的数据,如果数据不存在则报错
s2={10,20}
s2.discard(10)
print(s2) # {20}
s1.discard(10)
print(s1) # 集合中没有该数也不报错

# 3.pop()随机删除集合中的某个数据,并返回这个数据
s1={10,20,30,40,50,60}
print(s1) # {50, 20, 40, 10, 60, 30}
del_num=s1.pop() # 返回的是删除的元素
print(del_num) # 50
print(s1) # {20, 40, 10, 60, 30}
# 交集 &
a={1,2,3,4,5}
b={3,4,5,6}
c=a&b
print(c) # {3, 4, 5}
# 并集 |
d=a|b
print(d) # {1, 2, 3, 4, 5, 6}

数据类型的公共操作

运算符:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

推导式

# 作   者:xiao_syuan
# 开发时间:2024-12-26 21:10

# 用while循环
l1=[]
i=0
while i <10:
    l1.append(i)
    i+=1
print(l1) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 用for循环
l2=[]
for i in range(10):
    l2.append(i)
print(l2) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 用列表推导式
l3=[i for i in range(10)] # 列表使用中括号
print(l3) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 元组推导式
t1=(i for i in range(10)) # 元组使用小括号
print(t1) # 直接打印返回地址: <generator object <genexpr> at 0x000001C604603350>
print(tuple(t1)) # (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

# 字典推导式
d1={i:i**2 for i in range(1,5)} # i:i**2为表达式:i : i的平方 ; for i in range(1,5)为表达式的范围
print(d1) # {1: 1, 2: 4, 3: 9, 4: 16}

# 集合推导式
l4=[1,1,2,3]
s1={i**2 for i in l4}
print(s1) # {1, 4, 9}

http://www.kler.cn/a/456399.html

相关文章:

  • Elasticsearch:使用 Ollama 和 Go 开发 RAG 应用程序
  • 【Spring】 Bean 注入 HttpServletRequest 能保证线程安全的原理
  • 小程序配置文件 —— 12 全局配置 - pages配置
  • 【leetcode 07】707.设计链表
  • Flutter 实现全局悬浮按钮学习
  • [江科大STM32] 第五集STM32工程模板——笔记
  • 什么是数据库的锁?怎么实现?
  • 【教程】如何编译指定版本Spark
  • [Hive]七 Hive 内核
  • Kotlin 协程基础知识总结三 —— 协程上下文与异常处理
  • AutoFOX:一种冠状动脉X线造影与OCT的自动化跨模态3D融合框架|文献速递-视觉大模型医疗图像应用
  • IDEA 搭建 SpringBoot 项目之配置 Maven
  • 打造RAG系统:四大向量数据库Milvus、Faiss、Elasticsearch、Chroma 全面对比与选型指南
  • 【新方法】通过清华镜像源加速 PyTorch GPU 2.5安装及 CUDA 版本选择指南
  • 从CreateDialogIndirectParam起---我与大模型对话
  • 使用机器学习在单细胞水平识别肿瘤细胞
  • 【Halcon】数据结构汇总
  • 从0入门自主空中机器人-3-【环境与常用软件安装】
  • 关于最新MySQL9.0.1版本zip自配(通用)版下载、安装、环境配置
  • 1.business english--build rapport
  • 分類タスクの評価指標をわかりやすく解説!
  • 【畅购电商】项目总结
  • 计算机毕业设计Python+Spark知识图谱酒店推荐系统 酒店价格预测系统 酒店可视化 酒店爬虫 酒店大数据 neo4j知识图谱 深度学习 机器学习
  • 机器学习和深度学习中的种子设置
  • 【泰克生物】酵母展示技术在纳米抗体筛选中的应用:优化抗体筛库策略
  • C++入门基础(下)