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

13.Python从入门到精通—Python 集合操作与方法概览

13.Python从入门到精通—Python 集合操作与方法概览

  • Python 集合
    • 集合的基本操作
      • 1、添加元素
      • 2、移除元素
      • 3、计算集合元素个数
      • 4、清空集合
      • 5、判断元素是否在集合中存在
    • 集合内置方法完整列表

Python 集合

在Python中,集合是一种无序、不重复的数据类型。集合通常用于去重、检查成员资格等操作。Python提供了内置的set类型来实现集合,可以使用花括号{}或set()函数来创建一个集合。

在这里插入图片描述

使用花括号创建集合:

my_set = {'apple', 'banana', 'orange'}
print(my_set)  # 输出 {'banana', 'orange', 'apple'}

使用set()函数创建集合:

my_set = set(['apple', 'banana', 'orange'])
print(my_set)  # 输出 {'banana', 'orange', 'apple'}

可以使用add()方法向集合中添加元素:

my_set = {'apple', 'banana', 'orange'}
my_set.add('pear')
print(my_set)  # 输出 {'banana', 'orange', 'pear', 'apple'}

可以使用remove()方法从集合中删除元素:

my_set = {'apple', 'banana', 'orange'}
my_set.remove('banana')
print(my_set)  # 输出 {'orange', 'apple'}

可以使用in运算符来检查元素是否属于集合:

my_set = {'apple', 'banana', 'orange'}
print('apple' in my_set)  # 输出 True
print('pear' in my_set)  # 输出 False

需要注意的是,集合中的元素必须是不可变的对象,因为集合的实现也是基于哈希表的。如果集合中包含可变对象,例如列表或字典,将引发TypeError异常。

集合的基本操作

1、添加元素

在Python中,可以使用以下方法向字典中添加元素:

  • 使用键来添加元素:使用方括号[]和赋值符号=,将新的键值对添加到字典中。
  • 使用update()方法:使用update()方法将一个字典中的键值对添加到另一个字典中。

下面是这两种方法的示例:

# 使用键来添加元素
my_dict = {'key1': 'value1', 'key2': 'value2'}
my_dict['key3'] = 'value3'
print(my_dict) # 输出:{'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}

使用update()方法添加元素
my_dict = {'key1': 'value1', 'key2': 'value2'}
new_dict = {'key3': 'value3', 'key4': 'value4'}
my_dict.update(new_dict)
print(my_dict) # 输出:{'key1': 'value1', 'key2': 'value2', 'key3': 'value3', 'key4': 'value4'}

使用这些方法,可以方便地向字典中添加新的键值对。

2、移除元素

在Python中,可以使用以下方法从字典中移除元素:

  • 使用del语句:使用del语句和键来删除字典中的元素。
  • 使用pop()方法:使用pop()方法和键来删除字典中的元素,并返回该元素的值。
  • 使用clear()方法:使用clear()方法删除字典中的所有元素。

下面是这三种方法的示例:

# 使用del语句删除元素
my_dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
del my_dict['key2']
print(my_dict) # 输出:{'key1': 'value1', 'key3': 'value3'}

使用pop()方法删除元素
my_dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
value = my_dict.pop('key2')
print(my_dict) # 输出:{'key1': 'value1', 'key3': 'value3'}
print(value) # 输出:value2
使用clear()方法删除所有元素
my_dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
my_dict.clear()
print(my_dict) # 输出:{}

使用这些方法,可以方便地从字典中移除元素。

3、计算集合元素个数

在Python中,可以使用len()函数来计算集合中元素的个数。例如

my_set = {'apple', 'banana', 'orange'}
print(len(my_set))  # 输出 3

需要注意的是,如果集合中有重复的元素,它们只会被计算一次。

4、清空集合

在Python中,可以使用以下方法清空集合:
使用clear()方法:使用clear()方法删除集合中的所有元素。

下面是这种方法的示例:

# 使用clear()方法清空集合
my_set = {1, 2, 3, 4, 5}
my_set.clear()
print(my_set) # 输出:set()

使用这种方法,可以方便地清空集合中的所有元素。

5、判断元素是否在集合中存在

在Python中,可以使用in运算符来判断一个元素是否在集合中存在。例如:

my_set = {'apple', 'banana', 'orange'}
print('apple' in my_set)  # 输出 True
print('pear' in my_set)  # 输出 False

需要注意的是,in运算符的时间复杂度是O(1),因此它非常适合用于集合中元素的查找操作。

集合内置方法完整列表

Python中的集合类型内置了多个方法,包括:

  • add():向集合中添加元素。

  • clear():从集合中删除所有元素

  • copy():返回集合的副本。

  • difference():返回一个包含两个集合差集元素的新集合。

  • difference_update():从原集合中删除另一个集合中的元素。

  • discard():从集合中删除指定元素,如果元素不存在,则不执行任何操作。

  • intersection():返回两个集合的交集元素。

  • intersection_update():将原集合中的元素更新为两个集合的交集元素。

  • isdisjoint():判断两个集合是否没有交集。

  • issubset():判断一个集合是否为另一个集合的子集。

  • issuperset():判断一个集合是否为另一个集合的超集。

  • pop():随机删除并返回集合中的一个元素。

  • remove():从集合中删除指定元素,如果元素不存在,则引发KeyError异常。

  • symmetric_difference():返回两个集合的对称差集元素。

  • symmetric_difference_update():将原集合中的元素更新为两个集合的对称差集元素。

  • union():返回两个集合的并集元素。

  • update():将原集合中的元素更新为两个集合的并集元素。

# 创建两个集合
set1 = {1, 2, 3}
set2 = {3, 4, 5}

# add():向集合中添加元素
set1.add(6)
print("add():", set1)  # 输出:{1, 2, 3, 6}

# clear():从集合中删除所有元素
set1.clear()
print("clear():", set1)  # 输出:set()

# copy():返回集合的副本
set2_copy = set2.copy()
print("copy():", set2_copy)  # 输出:{3, 4, 5}

# difference():返回一个包含两个集合差集元素的新集合
diff = set2.difference(set1)
print("difference():", diff)  # 输出:{4, 5}

# difference_update():从原集合中删除另一个集合中的元素
set2.difference_update(set1)
print("difference_update():", set2)  # 输出:{4, 5}

# discard():从集合中删除指定元素,如果元素不存在,则不执行任何操作
set2.discard(4)
print("discard():", set2)  # 输出:{5}

# intersection():返回两个集合的交集元素
inter = set1.intersection(set2)
print("intersection():", inter)  # 输出:set()

# intersection_update():将原集合中的元素更新为两个集合的交集元素
set1.intersection_update(set2)
print("intersection_update():", set1)  # 输出:set()

# isdisjoint():判断两个集合是否没有交集
print("isdisjoint():", set1.isdisjoint(set2))  # 输出:True

# issubset():判断一个集合是否为另一个集合的子集
print("issubset():", set1.issubset(set2))  # 输出:False

# issuperset():判断一个集合是否为另一个集合的超集
print("issuperset():", set2.issuperset(set1))  # 输出:False

# pop():随机删除并返回集合中的一个元素
popped = set2.pop()
print("pop():", popped)  # 输出:5
print("pop() after:", set2)  # 输出:{3}

# remove():从集合中删除指定元素,如果元素不存在,则引发KeyError异常
set2.remove(3)
print("remove():", set2)  # 输出:set()

# symmetric_difference():返回两个集合的对称差集元素
sym_diff = set1.symmetric_difference(set2)
print("symmetric_difference():", sym_diff)  # 输出:{1, 2}

# symmetric_difference_update():将原集合中的元素更新为两个集合的对称差集元素
set1.symmetric_difference_update(set2)
print("symmetric_difference_update():", set1)  # 输出:{1, 2}

# union():返回两个集合的并集元素
union_set = set1.union(set2)
print("union():", union_set)  # 输出:{1, 2}

# update():将原集合中的元素更新为两个集合的并集元素
set1.update(set2)
print("update():", set1)  # 输出:{1, 2}

这些方法可以对集合进行各种操作,具体用法可以参考Python官方文档。


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

相关文章:

  • 《繁星路》V1.8.3(Build16632266)官方中文学习版
  • 洛谷:P1540 [NOIP2010 提高组] 机器翻译
  • 用豆包MarsCode IDE打造精美数据大屏:从零开始的指南
  • 服务器漏洞修复解决方案
  • 网络安全常见的问题
  • 游戏引擎学习第77天
  • idea import的maven类报红
  • 【包邮送书】深度学习经典案例解析(基于MATLAB)
  • 面试官:volatile如何保证可见性的,具体如何实现?
  • python 实现把内层文件夹的文件,复制/剪切到外层文件夹
  • 什么是大型语言模型(LLM)?
  • Kali Linux结合cpolar内网穿透实现公网环境SSH远程访问
  • PyTorch学习笔记之激活函数篇(五)
  • vue3.0组件API风格以及组合式API响应式基础
  • 一款基于 SpringCloud 开发的AI聊天机器人系统,已对接GPT-4.0,非常强大
  • 电学基础知识
  • macbook删除软件只需几次点击即可彻底完成?macbook删除软件没有叉 苹果笔记本MacBook电脑怎么卸载软件? cleanmymac x怎么卸载
  • 4.GetMapping和PostMapping 和 @RequestMapping的区别。RequestBody 和ResponseBody的区别
  • Java面向对象特征(二)----- 继承
  • flinksql在实时数仓hologres的计算问题排查
  • 2024-3-18-C++day6作业
  • 抖音无水印视频关键词批量下载|视频下载工具
  • 青海200MW光伏项目 35kV开关站图像监控及安全警示系统
  • 蓝桥杯算法基础(24):多维数组与矩阵(4道小题)java版
  • [日报] Ribbon、Eureka、Nginx、负载均衡
  • 深入理解Apache Kafka Topic:架构设计与应用场景