Python中的集合同数学中的集合概念类似,也是用于保存不重复的元素。他有可变集合(set),和不可变集合(frozenset);可变集合(set)是无序的可变的。
创建集合
直接使用{}
创建
setname = {"elment1", "element2", "element3"}
setname:集合名称
element:表示集合中的元素,个数没有限制,只要是Python支持的数据类型就可以
示例代码:
set1 = {"zhang", "li", "wang"}
set2 = {1, 2, 3}
set3 = {"张三", 18, 18, ("hello", "world")}
print(set1)
print(set2)
print(set3)
执行结果:
{'li', 'zhang', 'wang'}
{1, 2, 3}
{18, '张三', ('hello', 'world')}
注意:
set中重复的元素Python只会保留一个(如我们上面创建的set3)
使用set()
函数创建:
setname = set(iteration)
setname:表示集合的名字
iteration:表示要转换为集合的可迭代对象,可以是列表、元组、range对象等,也可以是字符串。如果是字符串,返回的集合将是包含全部不重复的集合。
示例代码:
set1 = set("zhang,wang")
set2 = set([1, 2, 3])
set3 = set(('hello', 'world'))
print(set1)
print(set2)
print(set3)
执行结果:
{'a', 'n', 'z', 'h', ',', 'w', 'g'}
{1, 2, 3}
{'hello', 'world'}
集合的添加和删除
setname.add(elment)
示例代码:
set1 = set(['hello', 'world'])
set1.add('你好世界')
print(set1)
执行结果:
{'hello', 'world', '你好世界'}
从集合中删除元素
集合中也可以使用
del
命令删除整个集合,也可以使用pop()
方法或者remove()
方法删除一个元素,或者使用集合对象的```clear()方法清空集合,即删除集合中的全部元素,使其变为空集合。
示例代码:
try:
set1 = set(['hello', 'world', 1, 2, 3])
set1.remove(1)
print(set1)
set1.pop() # 删除一个元素默认第一个
print(set1)
set1.clear()
print(set1)
except KeyError:
print('未找到对应的key')
执行结果:
{2, 3, 'world', 'hello'}
{3, 'world', 'hello'}
set()
集合的交集、并集和差集运算
示例代码:
python = set(['张三', '李四', '王二'])
c = set(['小明', '张三'])
print('学Python的同学有:', python)
print('学c的同学有:', c)
print('交集运算:', python & c) # 既学Python又学c的同学
print('并集运算:', python | c) # 输出全部同学名字
print('差集运算:', python - c) # 输出只选了Python没选c的同学
执行结果:
学Python的同学有: {'李四', '王二', '张三'}
学c的同学有: {'张三', '小明'}
交集运算: {'张三'}
并集运算: {'张三', '李四', '王二', '小明'}
差集运算: {'李四', '王二'}