Python 集合(set)

set() 函数创建一个无序不重复元素集。

s = set('klvchen')
print(s)

运行结果:
{'n', 'h', 'c', 'e', 'l', 'k', 'v'}
s1 = ['klvchen', 'aa', 'klvchen']
print(set(s1))

运行结果:
{'klvchen', 'aa'}

列表 通过 集合 进行去重操作

s1 = ['klvchen', 'aa', 'klvchen']
s2 = set(s1)
print(s2, type(s2))

s = list(s2)
print(s, type(s))

运行结果:
{'aa', 'klvchen'} <class 'set'>
['aa', 'klvchen'] <class 'list'>

判断元素是否在集合内

s = { 2, 3, 'klvchen'}
print(2 in s)
print('klvchen' in s)
print('klv' in s)

运行结果:
True
True
False

集合添加新元素

add()方法

s = { 2, 3, 'klvchen'}
s.add(1)
print(s)

运行结果:
{1, 2, 3, 'klvchen'}

update()方法

s = { 2, 3, 'klvchen'}
s.update('hello')         #字符串会被拆分
print(s)

运行结果:
{2, 3, 'e', 'h', 'o', 'klvchen', 'l'}
s = { 2, 3, 'klvchen'}
s.update(['hello'])       #在数组内的字符串被认为是一个整体
print(s)

运行结果:
{'klvchen', 2, 3, 'hello'}

集合删除

pop()随机弹出一个元素

s = { 2, 3, 'klvchen'}
s.pop()
print(s)

运行结果:
{2, 3}

clear()清空集合元素

s = { 2, 3, 'klvchen'}
s.clear()
print(s)

运行结果:
set()

del() 删除集合

s = { 2, 3, 'klvchen'}
del(s)
print(s)

运行结果:
NameError: name 's' is not defined

集合求交集

a = set([1, 2, 3, 4, 5])
b = set([4, 5, 6, 7, 8])

print(a.intersection(b))
print(a & b)

运行结果:
{4, 5}
{4, 5}

集合求并集

a = set([1, 2, 3, 4, 5])
b = set([4, 5, 6, 7, 8])

print(a.union(b))
print(a | b)

运行结果:
{1, 2, 3, 4, 5, 6, 7, 8}
{1, 2, 3, 4, 5, 6, 7, 8}

集合求差集

a = set([1, 2, 3, 4, 5])
b = set([4, 5, 6, 7, 8])

print(a.difference(b))
print(a - b)

print(b.difference(a))
print(b - a)

运行结果:
{1, 2, 3}
{1, 2, 3}
{8, 6, 7}
{8, 6, 7}
a = set([1, 2, 3, 4, 5])
b = set([4, 5, 6, 7, 8])

print(a.symmetric_difference(b))   #对称差集
print( a ^ b)

运行结果:
{1, 2, 3, 6, 7, 8}
{1, 2, 3, 6, 7, 8}

集合超集和子集

a = set([4, 5, 6, 7, 8])
b = set([4, 5])

print(a.issuperset(b))     # 判断 a 是否是 b 的超集
print(b.issubset(a))       # 判断 b 是否是 a 的子集

运行结果:
True
True
原文地址:https://www.cnblogs.com/klvchen/p/8707613.html