pythonset类型_set类型

Python 中有一个数据结构叫 set,set 和 dict 类似,也是一组 key

的集合,但不存储 value。

由于 key 不能重复,所以在 set 中没有重复的成员。

set 定义

set 的定义需要提供一个 list 作为输入集合。

myset = set([1, False, "老鸟python"])

print(myset)

set 中成员的特性和 dict 成员的 key 一样,必须是可以 hash 的。

myset = set([1, [1, 2], "老鸟python"]) # 错误,成员 [1, 2] 不可 hash

print(myset)

set 中成员重复的话,只有一个起作用,这和 dict 的 key 一样。

myset = set([1, 1, "老鸟python"])

print(myset # set([1, '老鸟python']))

set 是无序的,不可以通过下标访问。

myset = set([1, 1, "老鸟python"])

print(myset[0]) # 错误

set 内部的数据结构是 hash 表,所以定义完成后,set 内部成员的存储顺序不一定是初始化的顺序。

myset = set(["a", "b", "c"])

print(myset # set(['a', 'c', 'b']))

set 的常用函数

通过 set 提供的 add 函数可以添加成员到 set 中。

myset = set(["a", "b", "c"])

myset.add("d")

print(myset)

通过 set 提供的 remove

函数可以删除成员,但如果删除的成员不存在,python 会抛出异常;set 还有一个 discard

函数也可以删除成员,并且会自动处理异常。

myset = set(["a", "b", "c"])

myset.remove("b")

print(myset)

myset.remove("d") # 抛出异常

myset.discard("d") # 不做任何处理

set 的 pop 函数从集合中移除成员,并返回移除的成员,pop 函数删除成员是从内存中第一个成员依次删除。

myset = set(["a", "b", "c"])

print(myset # set(['a', 'c', 'b']))

myset.pop()

print(myset # set(['c', 'b']))

myset.pop()

print(myset # set(['b']))

注意事项:set 是无序集合,所以不能通过下标访问 set 成员,set 里面的成员和 dict 的 key

一样,而无 dict 的 value,所以 set 的成员无法通过 set[] 来获取成员。

set 交集和并集运算

set 可以看成数学意义上的无序和无重复元素的集合,因此,两个 set 可以做数学意义上的交集,并集等操作。

myset_one = set([1, 2, 3, 4])

myset_two = set([2, 4, 6, 8])

myset_three = myset_one & myset_two

myset_four = myset_one | myset_two

print(myset_three # set([2, 4]))

print(myset_four # set([1, 2, 3, 4, 6, 8]))

本节重要知识点

set 的定义和函数使用。

set 进行交集和并集运算。

作业

运行一下程序,看看结果,想想为什么?

myset_one = set([1, True, None, False, 0])

print(myset_one)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值