【Python基础知识】Python集合

发布 : python培训      来源:python干货资料

2020-09-18 14:15:52

1、集合概念

Python中的集合,是一个无序的、没有重复项的集。它支持数学概念上的集合操作,如交集、并集、补集和差集。集合是可变的,可以在其中添加或删除项。集合用花括号“{}”括起来,并用逗号“,”来分隔其中的项。

2、创建集合

可以使用花括号“{}”创建集合,集合会自动去除重复的项。下面的集合包含了几种用字符串表示的水果:

  1. >>> # 创建fruits集合时,'apple'出现了两次
  2. >>> fruits = {'apple', 'banana', 'watermelon', 'strawberry', 'apple'}
  3. >>> fruits # 查看fruits集合,'apple'只有保留了一个
  4. {'apple', 'strawberry', 'banana', 'watermelon'}

与列表、元组、字典一样,集合也可以用工厂函数set()来创建。set()函数的参数要么为空,要么为可迭代对象(如列表、元组和字符串):

  1. >>> fruits = set(['apple', 'banana', 'watermelon', 'strawberry', 'apple']) # 以列表为参数创建集合
  2. >>> fruits
  3. {'apple', 'strawberry', 'banana', 'watermelon'}
  4. >>> numbers = set((1, 2, 3, 3, 2, 4)) # 以元组为参数创建集合
  5. >>> numbers
  6. {1, 2, 3, 4}
  7. >>> letters = set('banana') # 以字符串为参数创建集合
  8. >>> letters
  9. {'b', 'a', 'n'}

如果想要创建一个空集合,那么使用空的花括号“{}”是行不通的,因为这样创建的是一个空字典:

  1. >>> empty = {}
  2. >>> empty
  3. {}
  4. >>> type(empty)
  5. <class &#39;dict&#39;>

创建空集合的唯一方式就是使用不包含任何参数的set()函数:

  1. >>> empty = set()
  2. >>> empty # 空集合表示为set()
  3. set()
  4. >>> type(empty)
  5. <class &#39;set&#39;>

3、集合添加项

集合是可变的数据类型,在创建集合之后,可以使用集合的add()方法向其添加项:

  1. >>> numbers = {1, 2, 3}
  2. >>> numbers.add(4) # 向numbers集合中添加整数4
  3. >>> numbers
  4. {1, 2, 3, 4}
  5. >>> numbers.add(&#39;five&#39;) # 向numbers集合中添加字符串&#39;five&#39;
  6. >>> numbers
  7. {1, 2, 3, 4, &#39;five&#39;}
  8. >>> numbers.add((5, 6, 7)) # 向numbers集合中添加元组(5, 6, 7)
  9. >>> numbers
  10. {1, 2, 3, 4, (5, 6, 7), &#39;five&#39;}

如果向某个集合中添加已经存在的项,那么什么也不会发生:

  1. >>> fruits = {&#39;apple&#39;, &#39;strawberry&#39;, &#39;banana&#39;, &#39;watermelon&#39;}
  2. >>> fruits
  3. {&#39;banana&#39;, &#39;apple&#39;, &#39;watermelon&#39;, &#39;strawberry&#39;}
  4. >>> fruits.add(&#39;apple&#39;) # 添加已经存在的项&#39;apple&#39;
  5. >>> fruits # fruits集合并没有改变
  6. {&#39;banana&#39;, &#39;apple&#39;, &#39;watermelon&#39;, &#39;strawberry&#39;}

也可以使用集合的update()方法向集合中添加项,参数必须是可迭代对象,如列表、字符串或另一个集合。类似于列表的append()方法和extend()方法,但区别是集合的update()方法总是会将可迭代对象“展开”:

  1. >>> numbers = {1}
  2. >>> numbers
  3. {1}
  4. >>> numbers.update((5, 6, 7))
  5. >>> numbers # 可以看出update()方法和add()方法的区别
  6. {1, 5, 6, 7}
  7. >>> numbers.update({4, 5}, {6, 7, 8}) # 参数为两个集合
  8. >>> numbers
  9. {1, 4, 5, 6, 7, 8}

4、集合删除项

可以使用集合的remove()方法删除某个集合中的指定项:

  1. >>> numbers = {1, 2, 3, 5, 7}
  2. >>> numbers.remove(1)
  3. >>> numbers
  4. {2, 3, 5, 7}
  5. >>> numbers.remove(3)
  6. >>> numbers
  7. {2, 5, 7}

如果试图删除集合中不存在的项,那么Python解释器会报错:

  1. >>> numbers = {1, 2, 3, 5, 7}
  2. >>> numbers.remove(4)
  3. Traceback (most recent call last):
  4. File "<stdin>", line 1, in <module>
  5. KeyError: 4

还可以使用集合的discard()方法来删除项,它和remove()方法唯一的区别是,当试图删除不存在的项时,discard()方法并不会报错,而是什么也不会发生:

  1. >>> numbers = {1, 2, 3, 5, 7}
  2. >>> numbers.discard(1)
  3. >>> numbers
  4. {2, 3, 5, 7}
  5. >>> numbers.discard(3)
  6. >>> numbers
  7. {2, 5, 7}
  8. >>> numbers.discard(4)
  9. >>> numbers # 什么也没发生
  10. {2, 5, 7}

5、检查某个项是否在集合中

集合的in操作符用于检查指定项是否在集合中,not in操作符用于检查指定项是否不在集合中:

  1. >>> numbers = {1, 2, 3, 5, 7}
  2. >>> 1 in numbers # 1在numbers集合中,返回True
  3. True
  4. >>> 3 in numbers # 3在numbers集合中,返回True
  5. True
  6. >>> 4 in numbers # 4不在numbers集合中,返回False
  7. False
  8. >>> 4 not in numbers # not in是in的反向操作
  9. True

6、查看集合的长度

集合的内建函数len()用于查看集合的长度,即集合中项的个数:

  1. >>> empty = set()
  2. >>> len(empty)
  3. 0
  4. >>> numbers = {1, 2, 3, 5, 7}
  5. >>> len(numbers)
  6. 5

THE END  

声明:本站稿件版权均属中公教育优就业所有,未经许可不得擅自转载。

领取零基础自学IT资源

涉及方向有Java、Web前端、UI设计、软件测试、python等科目,内容包含学习路线、视频、源码等

点击申请领取资料

点击查看资料详情 

收起 


 相关推荐

问题解答专区
返回顶部