数据类型
有:
字符串(str)
数字(int)
列表(list)
元组(tuple)
字典(dict)
不可变类型
(重新赋值会在内存当中开辟新的空间)分为:
str,int,tuple
可变类型
分为:
list,dict
访问顺序分为:
直接访问:int
顺序访问分为:字符串,列表,元组
映射访问分为:字典(key,value)
集合
定义:由不同元素组成的集合,集合中是一组无序排列的可hash值,可以作为字典的key,集合的名字用type的方法输出是set
1.不同元素组成
2.集合是无序的
3.集合中的元素只能是不可变类型(str,int,tuple)
特性:
1.集合的目的是将不同的值存放在一起,不同的集合间用来做关系运算,无需纠结于集合中某个值.
s = {1,2,3,4,5,6)#看着像字典,但是字典的定义是必须有key和value.用这点来区分集合和字典
2.集合有默认去重复的功能(去除重复的元素 )
集合当中的方法
添加
s = {1,2,3,5}
s.add("d")
清除
s.clear()
复制
s.copy()
随机删除
s.pop()#删除一个值
指定删除一个值
s.remove(1)#删除指定的值,如果这个值不存在就会报错
指定删除一个值,如果这个值不存在也不会报错
s.doscard("123")
求交集
s = {"123","456","789"}
s1 = {"123","456"}
s2 = s.intersection(s1)#求两个集合中相同的元素,可以传多个参数,多个集合取到相同的元素
s2 = s&s1#这是另外的一种写法,效果一样
print(s2)
求并集(求两个集合共有的元素,并把重复的元素去除)
s = {"123","456","789"}
s1 = {"123","456"}
print(s.union(s1))#两种写法
print(s|s1)
求差集
pring(s-s1)#输出的结果是:s里面有的,而s1里面没有的元素.
s.difference(s1)
交叉补集
print(s. symmetric_difference(s1)#求出两个集合里面不相同的元素.
print(s^s1)#简便写法
求出差集后复制给左边
s = {"123", "456", "789"}
s1 = {"123", "456","789"}
s3 = {"123", "456", "789", "1234"}
s3.difference_update(s1)
print(s3)
求出交集后重新复制给左边
s = {"123", "456", "789"}
s1 = {"123", "456","789"}
s3 = {"123", "456", "789", "1234"}
s3.intersection_update(s1)
print(s3)
两个集合做交集运算,如果发现没有重复的元素,则返回true,有就返回false
s = {"123", "456", "789"}
s1 = {"123", "456","789"}
s3 = {"123", "456", "789", "1234"}
s4 = {"abc","bcd"}
print(s.isdisjoint(s4))
右边包含左边的吗?包含就返回true(s.issubset(s3)),S3是右边,s是左边
s = {"123", "456", "789"}
s1 = {"123", "456","789"}
s3 = {"123", "456", "789", "1234"}
s4 = {"abc","bcd"}
print(s.issubset(s3))#s是s3的子集吗?是就返回true,其实就是说S3里面包含S吗?包含就返回true
和上面的方法正好反过来,判断父集
print(s3.issuperset(s))
s1.update(s3)#S1就会具备它和s3相比所没有的一些元素
update()更新方法
集合是一个可变参数,我们可以删除,添加元素.
这里有一个不可变的集合
定义方法是:s = frozenset(“hello”)
定义完成后,这个集合没有add和remove方法
字符串格式化,每有一个百分号,就必须传一个值在里面.
mgs = 'my name is %s'%'XGZ'
print(mgs)
print("my name is %s ,my hobby is %s"%("xgz","eat"))