您的位置:首页 > 编程语言 > Python开发

Python基础——数据类型(集合)

2019-05-28 00:33 441 查看
集合的定义:无序的,不可随机访问的,不可重复的元素的集合;

与数学中的集合概念类似,可对其进行交并差补等操作

集合的分类

1.可变集合(set):可以进行增删改操作

s1 = {1, 2, 3, 4}
print(s1, type(s1))                 # {1, 2, 3, 4} <class 'set'>
s2 = set(" abcdef ")                # set(iterable) iterable为可迭代对象,列表,字典,元组等
print(s2, type(s2))                 # {'e', 'b', 'a', 'd', ' ', 'f', 'c'} <class 'set'>片

2.不可变集合(frozenset):创建好后无法更改

fs = frozenset("asd")
print(fs, type(fs))                 # frozenset({'s', 'a', 'd'}) <class 'frozenset'>

注意
1.创建空集合

s3 = set()

2.集合中的元素必须是可哈希的(简单理解即不可变类型)

s4 = {1,2,["q", "w"]}
print(type(s4))                     # TypeError: unhashable type: 'list'
s41 = {1,2,{"q": "w"}}
print(type(s41))                    # TypeError: unhashable type: 'list'

3.集合中的元素不可重复

集合的常用操作(可变集合)

1.新增元素
s5 = {1, 2, 3}
s5.add(4)
print(s5) #{1, 2, 3, 4}
2.删除元素

s51 = {1, 2, 3}
s51.remove(3)
print(s51)          #{1, 2}
result = s51.pop()
print(result, s51)  #1 {2}
s51.clear()
print(s51)          #set()

3. 查询(遍历)

#for in
s6 = {1,2 ,3,4,5}
for s in s6:
print(s, end=" ")           #1 2 3 4 5

集合之间的操作

1.交集

sa = {1,2,3,4,5}
sb = {4,5,6}
res = sa.intersection(sb)       #res = sa & sb
print(res)                               #{4, 5}

2.并集

sa = {1,2,3,4,5}
sb = {4,5,6}
res = sa.union(sb)                  #res = sa | sb
print(res)                                #{1, 2, 3, 4, 5, 6}

3.差集

sa = {1,2,3,4,5}
sb = {4,5,6}
res = sa.difference(sb)                 # res = sa - sb
print(res)                                       #{1, 2, 3}

4.判断

sa = {1,2,3,4,5}
sb = {4,5,6}
sc = {4,5,6,7}
print(sa.isdisjoint(sb))                      #False  是或不相交
print(sc.issuperset(sb))                    #True  是否包含
print(sc.issubset(sb))                       #False 是否属于

注意当可变集合与不可变集合进行运算,结果以运算符左侧为主

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: