非常教程

Python参考手册

内置类型 | Built-in Types

Types: 7. Set Types — set, frozenset

7. Set Types — set, frozenset

一个set对象是不同的无序集合可哈希对象。常见用途包括成员资格测试,删除序列中的重复项,以及计算数学运算,如交集,联合,差异和对称差异。(对于其它容器看到内置在dict()list()tuple()函数collections模块)。

2.4版本中的新功能。

像其他收藏品,集支持x in setlen(set)for x in set。作为无序集合,集合不会记录元素位置或插入顺序。因此,集合不支持索引,切片或其他类序列行为。

目前有两个内置集类型,setfrozenset。该set类型是可变的 - 可以使用类似add()和的方法更改内容remove()。由于它是可变的,因此它没有散列值,不能用作字典键或另一个集的元素。该frozenset类型是不可变的且可拆分的 - 其内容在创建后不能更改; 因此它可以用作字典键或另一组元素。

从Python 2.7开始,可以通过在花括号中放置以逗号分隔的元素列表来创建非空集(非frozensets),例如:{'jack', 'sjoerd'}set构造函数之外。

这两个类的构造函数都是一样的:

class set([iterable])class frozenset([iterable])

返回其元素从迭代中获取的新集或冻结集对象。一组元素必须是可散列的。为了表示集合集合,内部集合必须是frozenset对象。如果未指定iterable,则返回一个新的空集。

实例setfrozenset提供以下操作:

len(s)

返回集合的元素数小号(基数小号)。

x in s

测试xs中的成员身份。

x not in s

Test x for non-membership in s.

isdisjoint(other)

True如果集合没有与其他元素相同的元素,则返回。当且仅当它们的交集是空集时,集合才是不相交的。

2.6版本中的新功能。

issubset(other)set <= other

测试集合中的每个元素是否在其他元素中。

set < other

测试该集合是否是其他集合的正确子集,也就是说set <= other and set != other

issuperset(other)set >= other

测试其他元素中的每个元素是否在集合中。

set > other

测试集合是否是其他集合的正确集合,也就是说set >= other and set != other

union(*others)set | other | ...

用集合中的元素和所有其他元素返回一个新集合。

在版本2.6中更改:接受多个输入迭代。

intersection(*others)set & other & ...

返回一个新集合,其中包含该集合和其他所有元素共有的元素。

在版本2.6中更改:接受多个输入迭代。

difference(*others)set - other - ...

返回集合中不包含其他元素的新集合。

在版本2.6中更改:接受多个输入迭代。

symmetric_difference(other)set ^ other

用集合中的元素或其他元素返回一个新集合,但不能同时返回两个元素。

copy()

s的浅拷贝返回一个新的集合。

注意,对非运营商的版本union()intersection()difference(),和symmetric_difference()issubset()issuperset()方法将接受任何可迭代作为参数。相反,他们的基于操作员的对应方要求他们的参数是集合。这排除了易于出错的结构,例如set('abc') & 'cbs'有利于更具可读性的结构set('abc').intersection('cbs')

双方setfrozenset支持设置来设置比较。当且仅当每个集合中的每个元素都包含在另一个中(每个元素是另一个的子集)时,两个集合是相等的。当且仅当第一组是第二组的合适子集(是子集,但不相等)时,集合小于另一集合。当且仅当第一个集合是第二个集合的适当超集(是超集,但不相等)时,集合比另一集合大。

的实例set进行比较的情况下,frozenset根据自己的成员。例如,set('abc') == frozenset('abc')返回True等等set('abc') in set([frozenset('abc')])

子集和等式比较不推广到总排序函数。例如,任何两个非空不相交的集合不相等,并且不彼此的子集,所以所有的以下返回Falsea<ba==b,或a>b。因此,集合不执行该__cmp__()方法。

由于集合只定义了部分排序(子集关系),所以该list.sort()方法的输出对于集合列表是未定义的。

设置元素,如字典键,必须是可散列的。

混合set实例的二进制操作frozenset返回第一个操作数的类型。例如:frozenset('ab') | set('bc')返回一个实例frozenset

下表列出了set不适用于以下不可变实例的可用操作frozenset

update(*others)set |= other | ...

更新集合,添加所有其他元素。

在版本2.6中更改:接受多个输入迭代。

intersection_update(*others)set &= other & ...

更新集合,只保留其中的元素和其他所有元素。

在版本2.6中更改:接受多个输入迭代。

difference_update(*others)set -= other | ...

更新设置,删除其他设备中的元素。

在版本2.6中更改:接受多个输入迭代。

symmetric_difference_update(other)set ^= other

更新集合,只保留任一集合中的元素,但不能同时存在于两者中。

add(elem)

将元素elem添加到集合中。

remove(elem)

从集合中删除元素elemKeyError如果元素不包含在集合中则引发。

discard(elem)

如果它存在,则从集合中移除元素elem

pop()

删除并返回该集合中的任意元素。KeyError如果该集合为空,则引发。

clear()

删除集合中的所有元素。

需要注意的的非运营商的版本update()intersection_update()difference_update(),和symmetric_difference_update()方法会接受任何迭代器作为参数。

请注意,该ELEM参数的__contains__()remove()discard()方法可能是一组。为了支持搜索等效的冻结集,elem集在搜索过程中暂时发生变化,然后进行恢复。在搜索期间,elem集不应该被读或者变异,因为它没有一个有意义的值。

Python

Python 是一种面向对象的解释型计算机程序设计语言,由荷兰人 Guido van Rossum 于1989年发明,第一个公开发行版发行于1991年。 Python 是纯粹的自由软件, 源代码和解释器 CPython 遵循 GPL 协议。Python 语法简洁清晰,特色之一是强制用空白符( white space )作为语句缩进。

主页 https://www.python.org/
源码 https://github.com/python/cpython
版本 2.7
发布版本 2.7.13

Python目录

1.内置常量 | Built-in Constants
2.内置例外 | Built-in Exceptions
3.内置函数 | Built-in Functions
4.内置类型 | Built-in Types
5.编译器 | Compiler
6.加密 | Cryptography
7.数据压缩 | Data Compression
8.数据持久性 | Data Persistence
9.数据类型 | Data Types
10.调试和分析 | Debugging & Profiling
11.开发工具 | Development Tools
12.文件和目录访问 | File & Directory Access
13.文件格式 | File Formats
14.构架 | Frameworks
15.输入 | Importing
16.输入/输出 | Input/ouput
17.国际化 | Internationalization
18.网络 | Internet
19.网络数据 | Internet Data
20.翻译 | Interpreters
21.语言 | Language
22.记录 | Logging
23.Mac OS
24.MS Windows
25.多媒体 | Multimedia
26.联网 | Networking
27.数字与数学 | Numeric & Mathematical
28.操作系统 | Operating System
29.可选操作系统 | Optional Operating System
30.限制执行 | Restricted Execution
31.运行 | Runtime
32.SGI IRIX
33.软件包装与分销 | Software Packaging & Distribution
34.字符串 | String
35.结构化标记 | Structured Markup
36.Tk
37.Unix
38.Python 简介
39.Python pass 语句
40.Python 循环嵌套
41.Python 运算符
42.Python log10() 函数
43.Python log() 函数
44.Python floor() 函数
45.Python fabs() 函数
46.Python exp() 函数
47.Python cmp() 函数
48.Python ceil() 函数
49.Python abs() 函数
50.Python Number(数字)
51.Python pow() 函数
52.Python modf() 函数
53.Python min() 函数
54.Python max() 函数
55.Python asin() 函数
56.Python acos() 函数
57.Python uniform() 函数
58.Python shuffle() 函数
59.Python seed() 函数
60.Python random() 函数
61.Python randrange() 函数
62.Python choice() 函数
63.Python sqrt() 函数
64.Python round() 函数
65.Python radians() 函数
66.Python degrees() 函数
67.Python tan() 函数
68.Python sin() 函数
69.Python hypot() 函数
70.Python cos() 函数
71.Python atan2() 函数
72.Python atan() 函数
73.Python 元组
74.Python 列表(List)
75.Python 字符串
76.Python 字典(Dictionary)
77.Python 日期和时间
78.Python 函数
79.Python 模块
80.Python capitalize()方法
81.Python center()方法
82.Python count() 方法
83.Python expandtabs()方法
84.Python endswith()方法
85.Python encode()方法
86.Python decode()方法
87.Python find()方法
88.Python index()方法
89.Python 异常处理
90.Python isspace()方法
91.Python isnumeric()方法
92.Python islower()方法
93.Python isdigit()方法
94.Python isalpha()方法
95.Python isalnum()方法
96.Python isupper()方法
97.Python istitle()方法
98.Python min()方法
99.Python max()方法
100.Python maketrans()方法