1.集合
# 不重复特点
list1 = [3,5,8,9,1,8,4,2,5,8,9]
#声明集合:set
s1 = set()
s2 = {} #字典:{key:value,key:value,.....} 集合{元素1,元素2,元素3,.......}
print(type(s1)) #<class 'set'>
print(type(s2)) #<class 'dict'>
#应用
s3 = set(list1)
print(s3)
#增删改查
#1.增加 s1 = set()
s1.add('hello')
s1.add('小猪佩奇')
s1.add('lucy')
print(s1)
#add() 添加一个元素
#update()
t1 = ('林志玲','言承旭')
s1.update(t1) #{'lucy', '小猪佩奇', '言承旭', '林志玲', 'hello'}
print(s1)
s1.add(t1)
print(s1)
#2.删除 remove 如果元素存在则删除,不存在则报错keyError pop clear....
# discard()
s1.remove('言承旭')
print(s1)
#s1.remove('道明寺')
#print(s1)
s1.pop()
print(s1)
s1.pop()
print(s1)
s1.clear() #清空
2.练习
'''
1.产生10个1~20的随机数,去除里面的重复项
2.键盘输入一个元素,将此元素从不重复的集合中删除
'''
import random
#list1 = []
#
## set1 = set()
#
#for i in range(10):
# ran = random.randint(1,20)
# list1.append(ran)
#
#
## set1.update(list1)
#set1 = set(list1)
#
#print(list1)
#
#print(set1)
#
#num = int(input('输入一个数字:'))
#
#set1.discard(num)
#
#print('删除之后结果:',set1)
#set1 = set()
#
#for i in range(10):
# ran = random.randint(1,20)
# set1.add(ran)
#
#print(set1)
#
#num = int(input('输入一个数字:'))
#set1.discard(num)
#print(set1.discard(num))
#
#print('删除之后结果:',set1)
#
#
#
##其他:符号操作
#print(6 in set1)
set2 = {2,3,4,5,6}
set3 = {2,3,4,5,6}
print(set2 == set3)
print(set2 != set3)
#set4 = set2+set3
#print(set4) #TypeError: unsupported operand type(s) for +: 'set' and 'set'
set4 = set2-set3 #差集 difference()
print(set4)
print('----------------')
set5 = set3.difference(set2)
print(set5)
# & 交集
set6 = set3 & set2
print(set6)
set7 = set3.intersection(set2)
print(set7)
# | 并集 union() 联合
set8 = set3 | set2
print(set8)
set9 = set3.union(set2)
print(set9)
'''
已知两个列表
l1 = [5,1,2,9,0,3]
l2 = [7,2,5,7,9]
找出两个列表的不同元素
找出两个列表的共同元素
'''
3.python交集差集
'''
已知两个列表
l1 = [5,1,2,9,0,3]
l2 = [7,2,5,7,9]
找出两个列表的不同元素
找出两个列表的共同元素
'''
l1 = [5,1,2,9,0,3]
l2 = [7,2,5,7,9]
s1 = set(l1)
s2 = set(l2)
#对称差集
print('==============')
result = (s1 | s2) - (s1 & s2)
print(result) #{0, 1, 3, 7}
result = s1 ^ s2 #两个列表中不同的元素 symmetric_difference()
print(result)
'''
difference_update()
s1 = s1.difference(s2)
print(s1)
相同
s1.difference_update(s2)
intersection_update() 交集并赋值
union_update() 并集并赋值
symmetric_difference_update() 对称差集并赋值
'''
s1.difference_update(s2)
print('==============')
print(s1)
关键字:set
作用:去重
符号: - & | ^
内置函数:
增加:add() update()
删除:remove() discard() pop() clear()
运算: difference() intersection() union() symmetric_difference()
4.可变和不可变
#可变 和 不可变
# 不可变 : 对象所指向的内存中的值是不可以改变
# 不可变的类型: int str float 元组tuple
num = 10
s1 = 'abc'
print(id(s1))
s1 = 'abcd'
print(id(s1))
t1 = (3,5,6)
print(id(t1))
t1 = (3,5)
print(id(t1))
#可变的:对象所指向的内存中的值是可以改变
#可变类型: 字典dict 列表list
list1 = [1,2,3,4,5]
print(list1,id(list1))
list1.pop()
print(list1,id(list1))
dict1 = {1:'aa',2:'bb'}
print(dict1,id(dict1))
dict1.pop(1)
print(dict1,id(dict1))
6.类型转换
来源:CSDN
作者:IT_harry
链接:https://blog.csdn.net/weixin_43849280/article/details/103456802