集合
来源:互联网 发布:淘宝的好处演讲 编辑:程序博客网 时间:2024/05/13 01:49
集合的基本概念
集合(或简称集)是基本的数学概念,它是集合论的研究对象。最简单的说法,即是在最原始的集合论─朴素集合论─中的定义,集合就是“一堆东西”。集合里的“东西”,叫作元素。若然 x 是集合 A 的元素,记作 x ∈ A。
集合是现代数学中一个重要的基本概念。集合论的基本理论直到十九世纪末才被创立,现在已经是数学教育中一个普遍存在的部分,在小学时就开始学习了。这里对被数学家们称为“直观的”或“朴素的”集合论进行一个简短而基本的介绍;更详细的分析可见朴素集合论。对集合进行严格的公理推导可见公理化集合论。
集合的创建
创建集合的方法
方法1: a = { 1, “python”} 例如:
>>> a = {1,"python"}>>> aset(['python', 1])>>>>>>> type({1,"python"})<type 'set'>>>>>>>>>> b = {"google","facebook"}>>> bset(['google', 'facebook'])>>>
方法2: s = set(“Xiaoxu”) 例如:
>>> s = set("Xiaoxu")>>> sset(['a', 'i', 'o', 'u', 'x', 'X'])>>>>>> type(s)<type 'set'>>>>
注意:集合的元素没有顺序,不可重复
空的集合创建方法,例如:
>>> b = {} #该语句表明 b 是个字典,并不是集合>>> b.add("python")Traceback (most recent call last): File "<stdin>", line 1, in <module>AttributeError: 'dict' object has no attribute 'add'>>> b = set() #该语句表明 b 是个集合>>> b.add("python")>>> bset(['python'])>>>
可哈希与不可哈希:
所有不可变的对象都是可哈希的,例如数字、字符串、元组。
注意:
frozenset()创建的集合是不可变的,即是可哈希的
集合中的元素必须是可哈希的
反之,所有可变的对象都是不可哈希的,例如,列表,字典,集合。
list()和set()函数
list()和set()函数可完成列表和集合的转换。代码如下:
['a', 'i', 'o', 'u', 'x', 'X']>>> a = [1,2,2,3,3,3]>>> s = set(a) #此处转换集合>>> sset([1, 2, 3])>>>>>>>>> a = list(s) #此处转换列表>>> a[1, 2, 3]>>>
集合:可变集合、不可变集合
set()函数创建的集合是可变集合
frozenset()函数创建的集合是不可变集合
集合的常用方法
add()的用法:
>>> help(set.add)Help on method_descriptor:add(...) Add an element to a set. This has no effect if the element is already present.>>>
若使用add()继续添加集合已经存在的某种元素,该方法会失效。只能添加集合中不存在的元素,例如:
>>> a = {"google","facebook"}>>> a.add("twitter") #添加表中不存在的元素>>> aset(['twitter', 'google', 'facebook'])>>> a.add("google") #添加表中已存在的元素,失效>>> aset(['twitter', 'google', 'facebook'])>>>
update()的用法:
>>> help(set.update)Help on method_descriptor:update(...) Update a set with the union of itself and others.>>>
举例如下:
>>> b = {'python',(1,2,3)}>>> b.update("xiaoxu")>>> bset(['a', 'python', 'o', (1, 2, 3), 'i', 'u', 'x'])>>>
pop()的用法:
>>> help(set.pop)Help on method_descriptor:pop(...) Remove and return an arbitrary set element. Raises KeyError if the set is empty.>>>
pop()函数从集合中随机删除一个元素,并返回。缺点是不能删除某个指定的元素,而且pop()函数没有参数,例如:
>>> b = set(['a', 'python', 'o', (1, 2, 3), 'i', 'u', 'x'])>>> b.pop()'a'>>> b.pop()'python'>>> bset(['o', (1, 2, 3), 'i', 'u', 'x'])>>>
remove()的用法:
>>> help(set.remove)Help on method_descriptor:remove(...) Remove an element from a set; it must be a member. If the element is not a member, raise a KeyError.>>>
remove(values)中values是指要删除的元素,必须指定values的值,不能为空。例如:
>>> b = set(['a', 'python', 'o', (1, 2, 3), 'i', 'u', 'x'])>>> b.remove("a")>>> bset(['python', 'o', (1, 2, 3), 'i', 'u', 'x'])>>>
discard()的用法:
>>> help(set.discard)Help on method_descriptor:discard(...) Remove an element from a set if it is a member. If the element is not a member, do nothing.>>>
discard(values)中values是指要删除的元素,必须指定values的值,不能为空。例如:
>>> f = set(['a', 'python', 'o', (1, 2, 3), 'i', 'u', 'x'])>>> f.discard("a")>>> fset(['python', 'o', (1, 2, 3), 'i', 'u', 'x'])>>>
clear()的用法:
>>> help(set.clear)Help on method_descriptor:clear(...) Remove all elements from this set.>>>
clear()函数能够一次性把集合中的元素全部删除,例如:
>>> g = set(['python', 'o', (1, 2, 3), 'i', 'u', 'x'])>>> g.clear()>>> gset([])>>>
集合运算
元素与集合的关系:
>>> s = set([1,2,3,4])>>> 1 in sTrue>>> 8 in sFalse>>>
集合与集合的关系:
>>> a = set([1,2,3,4,5])>>> b = set([1,2,3,4,5])>>> id(a) #此处说明 a 和 b 是不同的对象40805000>>> id(b)40807280>>> a == b #此处说明 a 和 b 两个集合的元素是相等的True>>>
一个集合是另一个集合的子集的判断方法:
第一种方法:
>>> a = set([1,2,3,4])>>> b = set([1,2,3,4,5])>>> a < bTrue>>>
第二种方法:
>>> a = set([1,2,3,4])>>> b = set([1,2,3,4,5])>>> a.issubset(b)True>>>
注意:若A是B的子集,则B是A的超集
一个集合是另一个集合的超集的判断方法:
第一种方法:
>>> a = set([1,2,3,4])>>> b = set([1,2,3,4,5])>>> a > bTrue>>>
第二种方法:
>>> a = set([1,2,3,4])>>> b = set([1,2,3,4,5])>>> b.issuperset(a)True>>>
并集:
第一种方法:
>>> a = set([0,1,3,6])>>> b = set([2,1,4,3])>>> a|bset([0, 1, 2, 3, 4, 6])
第二种方法
>>> a = set([0,1,3,6])>>> b = set([2,1,4,3])>>> a.union(c)set([0, 1, 2, 3, 4, 6])>>>
交集:
第一种方法:
>>> a = set([0,1,3,6])>>> b = set([2,1,4,3])>>> a &bset([1, 3])>>>
第二种方法:
>>> a = set([0,1,3,6])>>> b = set([2,1,4,3])>>> a.intersection(c)set([1, 3])>>>
集合的差(补)
第一种方法:
>>> a = set([0,1,3,6])>>> b = set([2,1,4,3])>>> a-bset([0, 6])>>>
第二种方法:
>>> a = set([0,1,3,6])>>> b = set([2,1,4,3])>>> a.difference(b)set([0, 6])>>>
集合与集合不同的部分:
>>> a = set([0,1,3,6])>>> b = set([2,1,4,3])>>> a.symmetric_difference(b)set([0, 2, 4, 6])>>>
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- 集合
- Sharepoint WebPart编写
- 大神博文实例
- Mosquitto on OpenWrt
- 使用xUtils3 IOC模块需要注意的问题
- 我行我素购物管理系统
- 集合
- linux stat函数讲解
- Python Django 之 Hello World
- org.springframework.beans.factory.BeanNotOfRequiredTypeException
- 选课网站
- 更改控制面板>硬件和声音>电源选项导致cpu温度很高
- 文章标题
- Java实验(2) Pi的近似值
- Java NIO Tutorial