您现在的位置是:首页 > 技术教程 正文

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

admin 阅读: 2024-03-21
后台-插件-广告管理-内容页头部广告(手机)

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'}
  • 1
  • 2

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

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

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

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

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

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

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

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

需要注意的是,集合中的元素必须是不可变的对象,因为集合的实现也是基于哈希表的。如果集合中包含可变对象,例如列表或字典,将引发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'}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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

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) # 输出:{}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

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

3、计算集合元素个数

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

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

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

4、清空集合

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

下面是这种方法的示例:

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

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

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

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

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

需要注意的是,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}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70

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

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索