目录
集合
一、集合的操作
1、集合的定义:某些指定的对象集在一起就成为了一个集合,其中每一个对象叫元素。
格式:集合名={元素1,元素2,.....}
例:my_set = {1,3,5}
定义一个空的集合 my_set = set() *注意* my_set = {} 这样的写法为一个空字典
2、集合的常见操作--增加元素
① add()
s1 = set()
s1.add('hello')
s1.add('小猪佩奇')
s1.add('lucy')
print(s1)
②update() #可以添加多个元素
t1 = ('林志玲','言承旭')
s1.update(t1)
print(s1)
s1.add(t1) #t1作为一个元素被添加集合
print(s1)
执行结果:
③ 增加删除元素
remove()
s1.remove("言承旭")
print(s1)
s1.remove('道明寺')
print(s1)
执行结果: 如果元素存在则删除,不存在则报错:KeyError:
POP() #随机删除
clear() #清空集合
discard() #类似remove()移除不存在的元素的时候不会报错
案例一:
import random
"""
.产生 10 个 1-20的随机数,去除里面的重复项
.键盘输入一个元素,将此元素从不重复的集合中删除
"""
# 定义一个 空集合
s1 = set()
# 定义一个循环, 10次, 每次循环的时候,累计 空集合的 元素
for i in range(100):
ran = random.randint(1, 20) # 产生一个 1 to 20 的随机数
s1.add(ran)
if i == 10:
break
print(s1)
num = int(input("请输入一个数字:"))
s1.discard(num)
print("删除之后的结果:",s1)
执行结果:
二、交集和并集
1、集合之差集(-)
difference()
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
# set3 = set1 - set2 # set1 比 set2 多 哪些元素
set3 = set1.difference(set2)
set4 = set2.difference(set1)
set5 = set1 ^ set2 # (set1|set2) - (set1&set2)
print(set3)
print(set4)
print(set5)
执行结果:
2、集合之交集(&)
intersection()
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
set3 = set2.intersection(set1)
print(set3)
执行结果:
{3,4}
3、集合之并集(|)
union()
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
set3 = set1.union(set2)
print(set3)
执行结果:
{1,2,3,4,5,6}
4、集合之对称差集(^)
symmetric_difference()
执行结果:
{1,2,5,6}
三、可变、不可变及类型转换
1、不可变类型:内存中的数据不允许被修改:
✦数字类型 int bool float,complex,long(2.x)
✦字符串 str
✦元组 tuple
2、可变类型:内存中的数据可以被修改:
✦列表 list
✦字典 dict
✦集合/frozenset()除外,frozenset()返回一个冻结的集合,冻结后集合不能再添加或删除任何元素
注意
可变类型的数据变化,是通过方法来实现的,如果给一个可变类型的变量,赋值了一个新的数据,引用会被修改
✦变量不再对之前的数据引用
✦变量改为对新赋值的数据引用
3、数据类型转换
案例一:
# str -- > int
str1 = "100"
num1 = int(str1)
print(num1)
num1 = 1000
str1 = str(num1)
print(str1)
# 列表转换成 字符串
list1 = [1, 2, 3, 4, ]
str2 = str(list1)
print(str2) # ----> "[1, 2, 3, 4]"
print(type(str2))
执行结果:
案例二:
str_1 = "hello_kitty!"
str_list = list(str_1) #转换成列表
print(str_list)
str_tuple = tuple(str_1) #转换成元组
print(str_tuple)
str_set = set(str_1) #转换成集合,会进行去重的操作
print(str_set)
str_1 = "1234567"
str_num = int(str_1) #转换成整型
print(str_num)
str_2 = "3.1415926" #转换成浮点数
str_flo = float(str_2)
print(str_2)
执行结果: