集合:set () 无序不重复的元素
# 声名集合:set
s1 = set()
print(type(s1))
<class ‘set’>
list1 = [3,5,8,6,4,5,9,8,4,3]
s2 = set(list1)
print(s2)
{3, 4, 5, 6, 8, 9}
集合的增删改查
# add() 添加一个元素
s1.add('hello')
s1.add('小猪佩琪')
s1.add('lucy')
print(s1)
{‘小猪佩琪’, ‘hello’, ‘lucy’}
update() 添加元组/列表等
t1 = ('林志玲','言承旭')
s1.update(t1)
print(s1)
{‘林志玲’, ‘言承旭’, ‘小猪佩琪’, ‘hello’, ‘lucy’}
# 删除 remove() discard() pop() clear()
s1.remove('言承旭')
print(s1)
{‘林志玲’, ‘小猪佩琪’, ‘hello’, ‘lucy’}
# 使用 remove() 删除集合元素,如果元素不存在则报KeyError异常
s1.remove('道明寺')
print(s1)
KeyError: ‘道明寺’
# discard() 类似remove() 在移除不存在的元素时不会报错
s1.discard('道明寺')
print(s1)
{‘林志玲’, ‘小猪佩琪’, ‘hello’, ‘lucy’}
# pop() 随机删除一个元素,一般会删除集合的第一个元素
s1.pop()
print(s1)
{‘小猪佩琪’, ‘hello’, ‘lucy’}
# clear() 清空集合中的元素
s1.clear()
print(s1)
set()
# 案例:产生10个 1-20 的随机数,去除里面的重复项
import random
list1=[]
s1=set()
for i in range(10):
ran = random.randint(1,20)
list1.append(ran)
s1.update(list1)
print(list1)
print(s1)
[7, 5, 5, 17, 5, 9, 20, 12, 11, 8]
{5, 7, 8, 9, 11, 12, 17, 20}
# 案例:键盘输入一个元素,将此元素从不重复的集合中删除
num = input('请输入一个数字:')
s1.discard(num)
print('返回删除后结果',s1)
请输入一个数字:3
返回删除后结果 {5, 7, 8, 9, 11, 12, 17, 20}
# 其他:符号操作
print(5 in s1)
True
# -(差集合) &(交集) |(并集)
set1 = {2,3,4,5,6}
set2 = {5,6,7}
print(set1 - set2)
print(set1 & set2)
print(set1 | set2)
{2, 3, 4}
{5, 6}
{2, 3, 4, 5, 6, 7}
已知两个列表:
l1 = [5,1,2,9,0,3]
l2 = [7,2,5,7,9]
找出两个列表的不同元素
找出两个列表的共同元素
# 对称差集 (s1|s2)-(s1&s2) ^ () 求对称差集,找出两个列表中的不同元素
l1 = [5,1,2,9,0,3]
l2 = [7,2,5,7,9]
set1=set(l1)
set2=set(l2)
print('两个列表的不同元素:',(set1|set2)-(set1&set2))
print('两个列表的共同元素:',set1&set2)
两个列表的不同元素: {0, 1, 3, 7}
两个列表的共同元素: {9, 2, 5}
result = set1 ^ set2
print(result)
{0, 1, 3, 7}
# difference_update() 差集并赋值
# intersection_update() 交集并赋值
# union_update() 并集并赋值
# symmetric_difference_update() 对称差集并赋值
set1.difference_update(set2)
print(set1)
{0, 1, 3}
*不可变的类型:int, str, float, 元组
可变的类型:字典,列表,集合
类型转换:
str()
int()
list()
dict()
set()
tuple()
str - -> int(),list(),set(),tuple()
list - - > set(),tuple(),dict()[(key,value),(key,value),…]
tuple - - > list(),set()
set - - > list()
dict - - > list()[只是将key放入了列表中]*