Python__Day04集合和函数,以及前面的变量总结

数据类型

有:
字符串(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"))

猜你喜欢

转载自blog.csdn.net/ztwsxgz/article/details/82830771