集合
多个元素的无序组合
集合中不存在相同的元素,每个元素唯一,不可更改
集合使用{} 或set()函数创建,如果要创建一个空集合,必须使用set函数
。因为{} 是用来创建空字典的
S = {2,4,6,8}
S1 = set("2468")
emptySet = set()
print("{} {} {}".format(S,S1,emptySet))
{8, 2, 4, 6} {'2', '8', '4', '6'} set()
集合操作符
IMG_0199.jpgA = {"p","y","123"}
B = set("pypy123")
A-B
{'123'}
A&B
{'p', 'y'}
A|B
{'1', '123', '2', '3', 'p', 'y'}
print(A^B)
{'2', '3', '1', '123'}
集合的处理方法
S.add(x)
S.discard(x) 从集合S中移除一个元素,x不在S中,程序不会异常
S.remove(x) 从集合S中移除一个元素,若x不在S中,将产生异常
S.clear() 清空整个集合
S.pop() 取出第一个元素,并从集合中删除
S.copy() 复制一个集合
A = {"p","y","123"}
A.add('python')
A
{'123', 'p', 'python', 'y'}
A.discard('123')
A
{'p', 'python', 'y'}
A.remove('123')
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-108-384dad4bdbbd> in <module>
----> 1 A.remove('123')
KeyError: '123'
A.discard('123')
A
{'p', 'python', 'y'}
A.pop()
'p'
A.copy()
{'python', 'y'}
A.clear()
集合的遍历
A = {"p","y","123"}
for item in A:
print(item, end=" ")
A
p 123 y
{'123', 'p', 'y'}
A = {"p","y","123"}
try:
while True:
print(A.pop(),end=" ")
except:
pass
A
p 123 y
set()
应用场景
1、包含关系的比较
2、数据去重
包含关系的比较
S = set("123456789")
S1 = set("9468")
print(S)
print(S1)
S > S1
{'8', '7', '1', '5', '9', '6', '2', '3', '4'}
{'8', '4', '9', '6'}
True
数据去重
ls = ["p","p","y","y",123]
s = set(ls)
print(s)
{'p', 123, 'y'}
序列
一组有序数据的集合
包括字符串、列表、元组
元组
一旦创建就不能修改
使用小括号() 或 tuple()创建,元素之间逗号,分隔
使用时可以使用或不适用小括号
creature = ("cat","dog","tiger")
creature
('cat', 'dog', 'tiger')
creature[0] = "bird" #试图修改元组将会产生错误
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-119-03dbaa2c484e> in <module>
----> 1 creature[0] = "bird" #试图修改元组将会产生错误
TypeError: 'tuple' object does not support item assignment
列表
数据的有序排列组合
使用[] 或 list()创建
ls = ['cat','dong','tiger','human']
ls[1:2] = [1,2,3,4]
print(ls )
['cat', 1, 2, 3, 4, 'tiger', 'human']
del ls[::3]
print(ls)
[1, 2, 4, 'tiger']
ls*2
[1, 2, 4, 'tiger', 1, 2, 4, 'tiger']
网友评论