Python集合(set)

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的同学有: {'张三', '小明'}
交集运算: {'张三'}
并集运算: {'张三', '李四', '王二', '小明'}
差集运算: {'李四', '王二'}
上一篇:padding Oracle attack(填充Oracle攻击)


下一篇:Padding Oracle Attack的一些细节与实现