python集合有什么特点_python中集合的特点和注意点?

>>> # 创建fruits集合时,'apple'出现了两次

>>> fruits = {'apple', 'banana', 'watermelon', 'strawberry', 'apple'}

>>> fruits  # 查看fruits集合,'apple'只有保留了一个

{'apple', 'strawberry', 'banana', 'watermelon'}

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

>>> fruits = set(['apple', 'banana', 'watermelon', 'strawberry', 'apple'])   # 以列表为参数创建集合

>>> fruits

{'apple', 'strawberry', 'banana', 'watermelon'}

>>> numbers = set((1, 2, 3, 3, 2, 4))   # 以元组为参数创建集合

>>> numbers

{1, 2, 3, 4}

>>> letters = set('banana')   # 以字符串为参数创建集合

>>> letters

{'b', 'a', 'n'}

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

>>> empty = {}

>>> empty

{}

>>> type(empty)

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

>>> empty = set()

>>> empty  # 空集合表示为set()

set()

>>> type(empty)

3、集合添加项

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

>>> numbers = {1, 2, 3}

>>> numbers.add(4)   # 向numbers集合中添加整数4

>>> numbers

{1, 2, 3, 4}

>>> numbers.add('five')   # 向numbers集合中添加字符串'five'

>>> numbers

{1, 2, 3, 4, 'five'}

>>> numbers.add((5, 6, 7))   # 向numbers集合中添加元组(5, 6, 7)

>>> numbers

{1, 2, 3, 4, (5, 6, 7), 'five'}

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

>>> fruits = {'apple', 'strawberry', 'banana', 'watermelon'}

>>> fruits

{'banana', 'apple', 'watermelon', 'strawberry'}

>>> fruits.add('apple')   # 添加已经存在的项'apple'

>>> fruits   # fruits集合并没有改变

{'banana', 'apple', 'watermelon', 'strawberry'}

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

>>> numbers = {1}

>>> numbers

{1}

>>> numbers.update((5, 6, 7))

>>> numbers   # 可以看出update()方法和add()方法的区别

{1, 5, 6, 7}

>>> numbers.update({4, 5}, {6, 7, 8})   # 参数为两个集合

>>> numbers

{1, 4, 5, 6, 7, 8}

4、集合删除项

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

>>> numbers = {1, 2, 3, 5, 7}

>>> numbers.remove(1)

>>> numbers

{2, 3, 5, 7}

>>> numbers.remove(3)

>>> numbers

{2, 5, 7}

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

>>> numbers = {1, 2, 3, 5, 7}

>>> numbers.remove(4)

Traceback (most recent call last):

File "", line 1, in 

KeyError: 4

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

>>> numbers = {1, 2, 3, 5, 7}

>>> numbers.discard(1)

>>> numbers

{2, 3, 5, 7}

>>> numbers.discard(3)

>>> numbers

{2, 5, 7}

>>> numbers.discard(4)

>>> numbers  # 什么也没发生

{2, 5, 7}

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

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

>>> numbers = {1, 2, 3, 5, 7}

>>> 1 in numbers   # 1在numbers集合中,返回True

True

>>> 3 in numbers   # 3在numbers集合中,返回True

True

>>> 4 in numbers   # 4不在numbers集合中,返回False

False

>>> 4 not in numbers   # not in是in的反向操作

True

6、查看集合的长度

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

>>> empty = set()

>>> len(empty)

0

>>> numbers = {1, 2, 3, 5, 7}

>>> len(numbers)

5

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值