python09:集合

一、集合类型 set

1 作用

关系运算、去重

用for也能做关系运算,就是太麻烦。

l1=[1,2,3,4,5]
l2=[3,3,4,5,6]
l=[]
for x in l1:
    if x in l2:
      l.append(x)
      print(x)

2 定义:在{ }内用逗号分开多个元素,集合内元素有3个特点:

1.集合内元素均为不可变类型

2.集合内元素无序

3.集合内元素没有重复

定义空集合:s=set(),大括号是默认空字典。

3 类型转换

set({1,2,3})
res=set('helllllllo')
dict=({'k1':1,'k2':2})
s=set(dict)
print(res,s)

4 内置方法——关系运算

4.1取交集

friend1={1,2,3,4,5}
friend2={3,4,5,6,7,8}
print(friend1 & friend2)

4.2 取并集

print(friend1 | friend2)

4.3 取差集

print(friend1 - friend2)

4.4 取对称差集

print(friend1 ^ friend2)

4.5 父子集

当一个集合S1是S2的子集时称,S1<S2

5 内置方法——去重

特点:只能针对不可变类型,无法保证原来的顺序。

去重一般自己根据情况编写程序,python不可能提供解决问题的所有方法

l=[
    {'name':'lili','age':18,'sex':'male'},
    {'name':'jack','age':73,'sex':'male'},
    {'name':'tom','age':20,'sex':'female'},
    {'name':'lili','age':18,'sex':'male'},
    {'name':'lili','age':18,'sex':'male'},
]
new_l=[]
for dic in l:
    if dic not in new_l:
        new_l.append(dic)

6 其他内置方法

6.1 .discard() 括号内是要删除的值,若删除的元素不存在不会报错

s={1,2,3}
# s.discard(4) # 删除元素不存在do nothing
# print(s)
# s.remove(4) # 删除元素不存在则报错

6.2 .update() 添加新集合,.add()添加新元素

# s.update({1,3,5})
# print(s)
# s.add(4)
# print(s)

6.3 .pop()随机删除一个元素

# s.update({1,3,5})
# print(s)

猜你喜欢

转载自www.cnblogs.com/Franciszw/p/12482992.html