1.由不同元素组成的集合,集合中是一组无序排列的可hash值
必须是不同的
无序的
元素是不可变类型
s={1,2,3}和字典区别,字典必须定义键值对
2.
s={1,2,3,4,3,3,3,6,7,}
print(s)
结果:{1, 2, 3, 4, 6, 7}重复的会去掉
3.s=set('hello')#使用set生成集合
结果:{'l', 'o', 'e', 'h'}
s=set('hello')
print(s)
s=set(["alex","alex",'sb'])
print(s)
结果:
{'e', 'l', 'o', 'h'}
{'alex', 'sb'}
4.其他方法
add
copy
pop
remove('s')
discard('s')如果删除元素不存在,不报错
5.
python_l=['lcv','sfd','fa']
linux_l=['lcv','dd','fa']
这是两个列表,找出即学Python又学Linux的学生
不用集合,就需要使用for循环
python_and_linux_l=[]
for p_name in python_l:
if p_name in linux_l:
python_and_linux_l.append(p_name)
使用集合
将列表转换为集合
p_s=set(python_l)
l_s=set(linux_l)
#求两个集合的交集
print(p_s&l_s)#交集
#并集print(p_s | l_s)
#差集print(p_s-l_s)
6.交叉补集
将集合合并减去共同的部分
print("交叉补集",l_s^p_l)
7.
isdisjoint 没有交集
issubset s1是s2的子集
issuperset 父集
update将集合更新为多个值,原先只有2个,更新为4个
8.
s=frozenset('hello')定义不可变的集合
9.字符串格式化
print('i am %s my hobby is alex'%'asdf')
print('i am %s my hobby is %s'%('asdf','dd'))
打印百分号%%,两个% 前一个是转义符
tpl="I am %(name)s age %(age)d"%{"name":"alex","age":18}
10.百分号方式
%[(name)][flags]
可以左对齐空格补齐,右对齐。。。
%d,%f,
%.2f 浮点数,小数点以后保留2位
11.format字符串格式化
tpl="i am {} ,age{},hobby {}".format("seven",18,'alex')
tpl="i am {name},age {age},really{name}".format(**{"name":"seven","age":"18"})使用字典方式
%s可以接受所有类型
tpl="number:{:b},{:o},{:d},{:x},{:X},{:%}".format(15,15,15,15,15,15.8768,2)
print(tpl)
将数据按照二进制、八进制、十进制、16进制小写,16进制大写,百分数打印
结果:number:1111,17,15,f,F,1587.680000%