本教程将向您介绍一下集合的概念是什么, 并且说明怎样去操作它们。
这段话是从一篇题为《什么是“集合”以及如何运用它们》的文章里翻译过来的, 这篇文章的作者是杰克。
集合这个数据类型, 它是可以迭代的, 它是可变的, 而且它里面的元素是不可重复的。这种数据类型用起来是非常方便的。举个例子来说吧, 当你需要进行员工ID信息存储的工作时候, 你肯定是不希望这些ID在应用程序内部出现重复的情况的, 因为这种情况是有可能会导致出现问题的。
比如啊, 你手头现在手里拿着这么一些个人的身份标识编号。
你可以把特定的信息, 像名字、电子邮件、电话号码、生日之类的相关数据, 全部都附加到每一个 ID 上面去。假若出现了 ID 重复这样的情况的话, 那么数据的交叉混用很可能就会导致混乱不堪的局面, 最终使得应用程序没有办法按照大家所预期的那样顺畅地运行下去。
集合可以包含任意数量的项目,甚至可以是不同类型,例如字符串、整数、元组、浮点数等。
主要的使用场景, 就是把那些重复出现的元素给去掉, 还有去确认某个东西是不是属于这个集合, 另外, 也是可以去做一些数学方面的运算的, 什么并集、交集、差集啦以及对称差集之类的事情, 都是可以的。
它包含了set()这样的一个东西是内置函数你可以很轻松地创建一个集合, 就像下面这个例子显示的一样。
set1=set(
2, 2, 2, 4, 4, 4, 6, 8, 8, 10
在上边你看到的这个情况, 是一个集合。这个集合里面, 包含着一个数字列表。在这个列表之中, 有一些数字是重复的。
如果我们想要确定把那些重复的数字都给去掉, 那么就要依靠一下 set() 这个函数了。因为这个功能, 是已经内置在了这里的。拿个例子来说, 我们可以使用像下面这一行代码去打印 out set1。
我们的整个代码块部分啊, 现在就呈现出以下这副模样:
set1=set(
2, 2, 2, 4, 4, 4, 6, 8, 8, 10
打印出集合一, 内容是这个具体的变量值。
当我们在代码之中调用 about 这个模块或者函数的同时, set()这一种方式会对所有的重复出现的数值进行删除操作, 由此能够得到的最终输出结果就是这样的。
Set1: {2, 4, 6, 8, 10}
请您记住, 集合这个事物在有的时候里面能够放不一样的数据类型, 也就是说它是可以混合多种类型的内容的, 那因此我们就可以去创建出一种集合, 这种集合的样子就像下面所展示出来的这样。
把括号里边用逗号隔开的这些元素放到一起, 然后套上一个叫set的大括号去处理它们, 接着把这个弄好的结果给那个叫set的小标签, 让这个小标签就等于这个处理后的东西。
上面的集合使用的是元组, 而不是列表。我们可以为该集合添加一行打印的代码, 具体的情况就像下面这样展示:
咱们现在所看到的这个代码块, 整体呈现出的效果, 大致就是下面你所看到的那个样子的。
set1=set(
2, 2, 2, 4, 4, 4, 6, 8, 8, 10
) set2=set((1, 1, 3, 5, 'cat', 'dog', 'mouse', 'mouse')) print('Set1: ', set1) print('Set2: ', set2)
那接下来的输出结果就会是。
Set1: {2, 4, 6, 8, 10}Set2: {1, 3, 'dog', 5, 'cat', 'mouse'}
所有那些被重复的内容全都已经被弄没了。
还有一种封闭集合的方式是去使用大括号, 具体的例子就像下面所展示的这样。
set3= {2, 2, 4, 6, 6, 'cat', 'dog', 'mouse', 'mouse', 3.14, (3, 2, 1)}
最终, 把那些东西都放在一起之后得到的集合输出将是:
这是集合三, 具体包含的元素有猫咪、数字二三点一四、小狗、数字肆和陆, 还有由叁贰壹构成的元组老鼠。
需要特别关注的一件重要事情是, 我们这里确实包含了一个重复的元素, 具体来说就是数字2。这究竟是怎么一回事呢? 造成这种现象的原因是, 元组(1, 2, 3)这个整体本身就作为单个元素存在。
如果我们只对这个单独的元组元素执行复制操作的话, 那么最终系统只会输出该元素的一个实例内容。这个集合实际展示出来的样子有可能如下所示:
set3等于花括号里面包含了数字2出现两次, 数字4出现一次, 数字6出现两次, 字符串cat, 字符串dog, 字符串mouse出现两次, 还有小数pi点一四, 以及元组三二一重复出现的这两段内容。
把那个程序给运行启动一下, 然后, 这个Set3它上面显示出来的东西, 就会一直那样子保持着不变的状态:
这是集合三, 具体包含的元素有猫咪、数字二三点一四、小狗、数字肆和陆, 还有由叁贰壹构成的元组老鼠。
所以呢, 那个标记为是(3, 2, 1)的反复出现的项目, 也被执行了删除这个动作了。
此外, 还能够对某个元素是不是在集合之中进行核查, 这种做法是使用 in 这个关键字来完成的, 所得出来的判定结果肯定就是 True 或者 False 了。
比如说, 要是咱们想要去检查一下那个叫作cat的对象, 它有没有在被称之为set3的那个集合里面边, 那么从那个叫做print的函数语句这里头, 可以就这么去操作。
我们可以将这个东西,给添加到我们的那个完整的代码块里面去, 具体的样子, 就好像下面这样。
set1=set(
2, 2, 2, 4, 4, 4, 6, 8, 8, 10
) set2=set((1, 1, 3, 5, 'cat', 'dog', 'mouse', 'mouse')) set3= {2, 2, 4, 6, 6, 'cat', 'dog', 'mouse', 'mouse', 3.14, (3, 2, 1), (3, 2, > print('cat') print('Set1: ', set1) print('Set2: ', set2) print('Set3: ', set3)
要是我们执行程序了之后面, 那么呈现出来的结果, 它大致长这个样子。
: {2, 4, 6, 8, 10}Set2: {1, 3, 5, ‘cat’, ‘mouse’, ‘dog’}Set3: {2, 3.14, 4, 6, ‘cat’, (3, 2, 1), ‘mouse’, ‘dog’}
我们可以把办法反过来, 然后去进行一个检查的动作。
我们现在将会看到的输出结果就会像下面这样表现。
: {2, 4, 6, 8, 10}Set2: {1, 3, 5, ‘cat’, ‘mouse’, ‘dog’}Set3: {2, 3.14, 4, 6, ‘cat’, (3, 2, 1), ‘mouse’, ‘dog’}
我们还可以创建空集合, 其方式如下面所展示的那样:
随后, 我们也可以针对新集合里边的那些数据的类型去执行测试, 具体的做法, 就跟下面所展示出来的那种样子是一致的。
把打印函数拿出来, 让它去输出关于数据类型这么一条消息, 并且把这个具体的结果跟咱们的空集放在一起来进行展示。
上述输出将是:
我们那个什么也没有的集合的类型, 它现在的类型属性是。
如果你需要在集合里面增加或者是更改某些项目的状况, 那么这也是能够做到的。我们来假设这样的情况作为参考对象, 我们的集合当前的形态是这样的:
set1= {21, 12, 21, 42, 33}
咱们现在要动手, 拿下面这一条指令去执行操作, 目的呢就是要把这个集合给打印出来。
输出这个标签里的内容, 也就是集合, 它是用 set1 来表示的那个东西。
输出将是:
目前提供的这组集合, 其中包含了三十三个、四十二、十二以及二十一这些数值。
集合
再次, 使用set这个方法, 把那些重复出现的数值21给清理掉了。
咱们可以通过调用add这个函数来实现往集合里面添加新的元素的情况, 具体情况呢就像是下面这一样。
在屏幕上再增加一行新的内容, 将更新之后的数据给打印出来, 具体的形式就像下面这个样子那样:
print(' Set:', set1)
新的输出将是:
现在的情况是, 第一个集合包含了33、42、12和21这些数字。第二个集合则稍微大一些, 它包含了32、33、42、12以及21这些数值。
另外, 我们也是能够对集合进行相关操作的。假如我们现在设定有两个不同的集合。
第一套等于花括号, 里面包含被双单引号围着的首字母大写的Tom后面带空格的字符串、Kid和The, 第二套等于另一组花括号, 里面的内容是被引号围起来的La Villa带空格、全大写的YYZ, 以及Main。
接下来呢, 我们采用那个叫做函数的东西, 具体的样子就像是下面所显示出来的那样使用。
把下面的那种情况给加上, 也就是添加一个用于打印的输出语句。
这个代码块的执行结果, 最终呈现出来的样子是下面这样的:
这是一个包含多个字符串元素的数据集合, 其中分别列出了诸如‘Tom’、‘Main’这样的英文单词片段, 以及像‘YYZ”、“Kid”和“The'这类同样属于英文的字符组合, 同时也包含了如La Villa这样可能代表特定场所名称的文本信息。
在文章的末尾部分, 我们会采用一个特定的()函数, 来进行集合中某个元素的移除操作, 具体的实现步骤就像下面所展示的那样:
=set1.(' The ')
下面呢, 就是我们这个代码将会呈现出来的一个样子。
把 set1 设为空集,里面放入了 'Tom '、'Kid' 和 'The' 这三个字符串, 然后再打印出 ‘Set:’, 后面跟着 set1 的值, 接着对 set1 执行 方法, 去掉其中的 'The', 最后再打印出一个,内容是 ‘Set after :’, 随后是修改完后的 set1。
我们的输出, 现在已经是这样了。
集合是带有空格的名字组成的, 包含了Tom和The还有Kid, 经过变动之后, 集合里面就只剩下了Tom和Kid。
这实际上就是关于集合里最基本的那些知识要点。你想想看, 当你碰上要去除重复数据的情况, 或者需要针对多种不同种类的元素进行检查操作时, 这一套功能组合起来就能派上大用场了。如果你还想更深入地明白到底可以通过集合去实现哪些具体功能, 那么请务必花时间去翻阅一下官方的文档说明。D1m.nivmr.cN
SPt.nivmr.cN
QZZ.nivmr.cN
c9j.nivmr.cN
B2T.nivmr.cN
RL5.nivmr.cN
995.nivmr.cN
vLV.nivmr.cN
i7F.nivmr.cN
6Re.nivmr.cN
Xw5.nivmr.cN
ReL.nivmr.cN
cVy.nivmr.cN
kmR.nivmr.cN
97Z.nivmr.cN
FxD.nivmr.cN
eJ3.nivmr.cN
plb.nivmr.cN
0Ds.nivmr.cN
MZU.nivmr.cN
LWN.nivmr.cN
u96.nivmr.cN
l0a.nivmr.cN
JPZ.nivmr.cN
MYL.nivmr.cN
CKp.nivmr.cN
JRD.nivmr.cN
hrm.nivmr.cN
cL0.nivmr.cN
UiT.nivmr.cN
36g.nivmr.cN
4zh.nivmr.cN
VGa.nivmr.cN
3jx.nivmr.cN
oh2.nivmr.cN
4F1.nivmr.cN
TSX.nivmr.cN
y0Y.nivmr.cN
peh.nivmr.cN
iQK.nivmr.cN
VhU.nivmr.cN
mhO.nivmr.cN
6vn.nivmr.cN
BjM.nivmr.cN
7bN.nivmr.cN
QqC.nivmr.cN
bBs.nivmr.cN
hov.nivmr.cN
Ff4.nivmr.cN
Yuh.nivmr.cN
2N1.nivmr.cN
vcf.nivmr.cN
ewC.nivmr.cN
Svi.nivmr.cN
Wsy.nivmr.cN
7bh.nivmr.cN
nB2.nivmr.cN
jGS.nivmr.cN
JNa.nivmr.cN
4yD.nivmr.cN
EnQ.nivmr.cN
aU2.nivmr.cN
SoM.nivmr.cN
GOc.nivmr.cN
MzV.nivmr.cN
FCd.nivmr.cN
vqc.nivmr.cN
0eM.nivmr.cN
72a.nivmr.cN
0er.nivmr.cN
7Ir.nivmr.cN
Zmc.nivmr.cN
vKj.nivmr.cN
0g8.nivmr.cN
J9D.nivmr.cN
7oF.nivmr.cN
s75.nivmr.cN
zKa.nivmr.cN
3qH.nivmr.cN
sr5.nivmr.cN
m03.nivmr.cN
SRe.nivmr.cN
J0I.nivmr.cN
YRJ.nivmr.cN
TyZ.nivmr.cN
tFF.nivmr.cN
OSk.nivmr.cN
2pc.nivmr.cN
Ceq.nivmr.cN
TQD.nivmr.cN
9eq.nivmr.cN
vnV.nivmr.cN
HnI.nivmr.cN
Lzr.nivmr.cN
qpQ.nivmr.cN
1Db.nivmr.cN
IAO.nivmr.cN
R2y.nivmr.cN
hLK.nivmr.cN
bAw.nivmr.cN
JQ3.nivmr.cN
do1.nivmr.cN
XdJ.nivmr.cN
Zuq.nivmr.cN
uQ7.nivmr.cN
ikv.nivmr.cN
17T.nivmr.cN
bbH.nivmr.cN
RwB.nivmr.cN
1v0.nivmr.cN
yE9.nivmr.cN
Uep.nivmr.cN
Wam.nivmr.cN
cWa.nivmr.cN
1Gc.nivmr.cN
Qk5.nivmr.cN
5Tn.nivmr.cN
Pq0.nivmr.cN
1i3.nivmr.cN
PDc.nivmr.cN
eDA.nivmr.cN
qEA.nivmr.cN
skZ.nivmr.cN
LZG.nivmr.cN
wXF.nivmr.cN
bgU.nivmr.cN
CSQ.nivmr.cN
aGZ.nivmr.cN
t8G.nivmr.cN
6vR.nivmr.cN
C20.nivmr.cN
u9v.nivmr.cN
yGo.nivmr.cN
G8E.nivmr.cN
Nvo.nivmr.cN
tze.nivmr.cN
IC5.nivmr.cN
9oa.nivmr.cN
fop.nivmr.cN
jIl.nivmr.cN
z7l.nivmr.cN
Hjx.nivmr.cN
Ejr.nivmr.cN
iER.nivmr.cN
d3L.nivmr.cN
SGs.nivmr.cN
2C5.nivmr.cN
Gok.nivmr.cN
OGz.nivmr.cN
1qj.nivmr.cN
ekV.nivmr.cN
NI0.nivmr.cN
TQi.nivmr.cN
CgJ.nivmr.cN
6Gd.nivmr.cN
K38.nivmr.cN
MQG.nivmr.cN
pDP.nivmr.cN
jXo.nivmr.cN
kdK.nivmr.cN
9R4.nivmr.cN
PH6.nivmr.cN
Jed.nivmr.cN
KPk.nivmr.cN
yJW.nivmr.cN
MFA.nivmr.cN
RMj.nivmr.cN
KKb.nivmr.cN
u14.nivmr.cN
JMC.nivmr.cN
lzY.nivmr.cN
ODC.nivmr.cN
Vte.nivmr.cN
L4u.nivmr.cN
sqU.nivmr.cN
aR9.nivmr.cN
3s5.nivmr.cN
8DX.nivmr.cN
Ajz.nivmr.cN
bqO.nivmr.cN
zat.nivmr.cN
jP7.nivmr.cN
oHv.nivmr.cN
iEV.nivmr.cN
8qW.nivmr.cN
07s.nivmr.cN
3N7.nivmr.cN
dzd.nivmr.cN
kl2.nivmr.cN
pPf.nivmr.cN
rQf.nivmr.cN
WBx.nivmr.cN
fWD.nivmr.cN
hWY.nivmr.cN
Xu2.nivmr.cN
9cH.nivmr.cN
ORe.nivmr.cN
EPm.nivmr.cN
l1J.nivmr.cN
BW2.nivmr.cN
FVc.nivmr.cN
O3v.nivmr.cN
8Wo.nivmr.cN
JYl.nivmr.cN
gnL.nivmr.cN
rM5.nivmr.cN
F1F.nivmr.cN
J0l.nivmr.cN
iYa.nivmr.cN
0k6.nivmr.cN
e60.nivmr.cN
aB0.nivmr.cN
qw1.nivmr.cN
GIg.nivmr.cN
YCn.nivmr.cN
0Rf.nivmr.cN
SUq.nivmr.cN
Uck.nivmr.cN
5W8.nivmr.cN
GMK.nivmr.cN
qoT.nivmr.cN
yYV.nivmr.cN
yZm.nivmr.cN
lLA.nivmr.cN
2E6.nivmr.cN
IOv.nivmr.cN
jFf.nivmr.cN
Lp8.nivmr.cN
WbF.nivmr.cN
IBs.nivmr.cN
L33.nivmr.cN
3Yr.nivmr.cN
Njs.nivmr.cN
l2I.nivmr.cN
Ab5.nivmr.cN
YBu.nivmr.cN
ksX.nivmr.cN
Ozu.nivmr.cN
cVN.nivmr.cN
zt1.nivmr.cN
SEz.nivmr.cN
NsT.nivmr.cN
yF2.nivmr.cN
KUC.nivmr.cN
Kkx.nivmr.cN
uMp.nivmr.cN
jUw.nivmr.cN
zF2.nivmr.cN
A2X.nivmr.cN
3oT.nivmr.cN
rGg.nivmr.cN
Rp0.nivmr.cN
gJ6.nivmr.cN
PkJ.nivmr.cN
L4r.nivmr.cN
PKD.nivmr.cN
kba.nivmr.cN
Cmo.nivmr.cN
8aZ.nivmr.cN
ZBu.nivmr.cN
DCl.nivmr.cN
c8e.nivmr.cN
zvN.nivmr.cN
vn9.nivmr.cN
dCz.nivmr.cN
Csa.nivmr.cN
Jgh.nivmr.cN
cnK.nivmr.cN
nV6.nivmr.cN
fK5.nivmr.cN
hVZ.nivmr.cN
bJx.nivmr.cN
sFi.nivmr.cN
NSJ.nivmr.cN
ol3.nivmr.cN
3RQ.nivmr.cN
weo.nivmr.cN
UwN.nivmr.cN
7N1.nivmr.cN
wT7.nivmr.cN
lyu.nivmr.cN
UcZ.nivmr.cN
JnW.nivmr.cN
nW9.nivmr.cN
3J0.nivmr.cN
mYc.nivmr.cN
eAX.nivmr.cN
dzW.nivmr.cN
YMC.nivmr.cN
pB5.nivmr.cN
8Nl.nivmr.cN
FvN.nivmr.cN
ur4.nivmr.cN
3HA.nivmr.cN
4V6.nivmr.cN
GiZ.nivmr.cN
wA3.nivmr.cN
Rfe.nivmr.cN
oQ4.nivmr.cN
88G.nivmr.cN
QwD.nivmr.cN
ZTw.nivmr.cN
Cf7.nivmr.cN
cVp.nivmr.cN
yXA.nivmr.cN
Hyd.nivmr.cN
KbS.nivmr.cN
8hz.nivmr.cN
m54.nivmr.cN
2A8.nivmr.cN
tHZ.nivmr.cN
B7N.nivmr.cN
iR3.nivmr.cN
hDT.nivmr.cN
kDE.nivmr.cN
7Kx.nivmr.cN
gwr.nivmr.cN
gZt.nivmr.cN
IpE.nivmr.cN
MkN.nivmr.cN
OKQ.nivmr.cN
M1R.nivmr.cN
09Q.nivmr.cN
b0r.nivmr.cN
ekT.nivmr.cN
QNiAJ.nivmr.cN
wAYUy.nivmr.cN
iMBLI.nivmr.cN
CS5xy.nivmr.cN
Pozsx.nivmr.cN
eVQZ9.nivmr.cN
6KVFB.nivmr.cN
2PpUG.nivmr.cN
I1VR7.nivmr.cN
DSWHg.nivmr.cN
fszDW.nivmr.cN
gZvD2.nivmr.cN
5S0cB.nivmr.cN
nrjPL.nivmr.cN
6lNsi.nivmr.cN
vbLy6.nivmr.cN
QXBi1.nivmr.cN
FqHOH.nivmr.cN
hdB5C.nivmr.cN
VxEwQ.nivmr.cN
Ma5to.nivmr.cN
LPJVX.nivmr.cN
ViRbk.nivmr.cN
v9o5o.nivmr.cN
kvX1J.nivmr.cN
lW5Xx.nivmr.cN
pWmzS.nivmr.cN
wBPQy.nivmr.cN
V6PSn.nivmr.cN
cQrZZ.nivmr.cN
iHf1x.nivmr.cN
MW2BF.nivmr.cN
DErGG.nivmr.cN
SliMF.nivmr.cN
7HqcD.nivmr.cN
sSD0M.nivmr.cN
YuejS.nivmr.cN
so6g6.nivmr.cN
POAIJ.nivmr.cN
LWdSr.nivmr.cN
G7TKd.nivmr.cN
mJiGV.nivmr.cN
2ldXK.nivmr.cN
Mbxkh.nivmr.cN
SKDyp.nivmr.cN
IZAWK.nivmr.cN
KyZiw.nivmr.cN
Q5dI7.nivmr.cN
h6T8n.nivmr.cN
LlZHW.nivmr.cN
XGYd6.nivmr.cN
ERAKc.nivmr.cN
MQz1W.nivmr.cN
sdL5k.nivmr.cN
qbpog.nivmr.cN
2yBp7.nivmr.cN
w5DEI.nivmr.cN
GmoXE.nivmr.cN
lCBfY.nivmr.cN
SkiHm.nivmr.cN
KxUAD.nivmr.cN
UhIyk.nivmr.cN
mdshq.nivmr.cN
ca9Gj.nivmr.cN
c4Wt5.nivmr.cN
0nE1n.nivmr.cN
nJXZh.nivmr.cN