集合:用括号{ }表示
最重要的特点是:1,无序性;2,不重复性。
不可通过下标访问
不可通过下标修改
基本功能:基本功能包括关系测试和消除重复元素
1,创建
使用 set(),将列表、元组等可迭代对象转成集合。如果原来数据存在重复数据,则只保留一个
a=[1,2,3,4,5,4,3,2,1]
b=set(a)
print(b) #{1,2,3,4,5}
a=set(199,2,3,34,6,777) # 输出错误 只能一个参数
print(a)
#a=set(‘123321’)
#print(a) #输出为{‘2’, ‘3’, ‘1’} 拆开
2,删除
remove()删除指定元素;clear()清空整个集合 pop()随机删除
a.remove()
a={11,2,3,'b'}
a.remove(3)
print(a)
#a.remove(999) #remove不存在数据时报错
a.discard(999) #discard不存在数据时不报错
,
a={11,2,3,'b'}
b=a.pop() #集合无序,故无下标,故随机删除
print(b)
3,集合增加 add,update
a={1,2,3}
a.add('abc')
print(a) #{'abc', 1, 2, 3}
a={11,2,3}
a.update('23a')
print(a) #{2, 3, '2', 11, '3', 'a'}
4,计算 union并集 intersection交集 difference不同 symmetric_difference异
a={1,2,3,4,5}
b={4,5,6,7,8}
c=a.union(b)
print(c) #{1, 2, 3, 4, 5, 6, 7, 8}
print(a) #{1, 2, 3, 4, 5}
print(b) #{4, 5, 6, 7, 8}
#
d=a.intersection(b) #求交集
print(d) #{4, 5}
#
e=a.difference(b)
print(e) #{1, 2, 3} #返回a中存在的,b中不存在的
e=b.difference(a)
print(e) #{8, 6, 7} #返回b中存在的,a中不存在的
#
f=a.symmetric_difference(b)
print(f) #{1, 2, 3, 6, 7, 8} #求异
5,关系测试
a={1,2,3,4,5}
b={1,2,3}
c=a.issuperset(b) #检测a是b的超集(父集)
print(c)
c=a.issubset(b) #检测a是b的子集
print(c)
c=a.isdisjoint(b) #检测是否互异
print(c)
输出:
True
False
False
6,运算符 无+
a={1,2,3,4,5}
b={1,2,7}
c=a-b
print(c)
c=a|b #c=a.union(b)
print(c)
c=a&b
print(c)
print(1 in a)
print(1 not in b)
print(a==b)
print(a!=b)
输出:
{3, 4, 5}
{1, 2, 3, 4, 5, 7}
{1, 2}
True
False
False
True
乱入:
#字典键值互换
a={1:20,3:40,5:60}
b={v:k for k,v in a.items()}
print(b)
利用集合简易求元素出现个数,排序
a=[1,2,3,1,2,2,2,3]
for d in set(a):
print(d,'出现%d次'%(a.count(d)))
,
L = [3, 1, 2, 1, 3, 4]
T = list(set(L))
T.sort(key=L.index)
print(T)