一、set:集合
(a = {... } 或 a = set(... ) 内部进行for循环,来表示集合)当a = frozenset(... )时,集合表不可变类型,以下内置方法不可用。
不同元素组成,无序,元素必须是不可变类型,集合本身是可变类型(不可变:字符串,数字,元组;可变:列表,字典,集合。)
方法:
- add:添加;
- clear:清空;
- copy:拷贝;
- pop:随机删除;
- remove:加参数删除,元素不存在时报错;
- discard:加参数删除,元素不存在时不报错;
- intersection / &:求交集
def intersection(self, *args, **kwargs)
1 例: 2 name1 = ['a','b','c','d'] 3 name2 = ['b','c','e','f'] 4 name1 = set(name1) 5 name2 = set(name2) 6 print(name1,name2) 7 print(name1.intersection(name2)) 8 print(name1&name2) 9 10 输出: 11 {'d', 'a', 'b', 'c'} {'b', 'f', 'e', 'c'} 12 {'b', 'c'} 13 {'b', 'c'}
- union / |:求并集
def union(self, *args, **kwargs)
1 例: 2 name1 = ['a','b','c','d'] 3 name2 = ['b','c','e','f'] 4 name1 = set(name1) 5 name2 = set(name2) 6 print(name1.union(name2)) 7 print(name1|name2) 8 9 输出: 10 {'e', 'a', 'f', 'd', 'c', 'b'} 11 {'e', 'a', 'f', 'd', 'c', 'b'}
- difference / -:差集
def difference(self, *args, **kwargs)
1 例: 2 name1 = {'a','b','c','d'} 3 name2 = {'b','c','e','f'} 4 print(name1.difference(name2)) 5 print(name2-name1) 6 7 输出: 8 {'d', 'a'} 9 {'e', 'f'}
- difference_update:得出一个集合与其它集合交集外的元素。
1 例: 2 name1 = {'a','b','c','d'} 3 name2 = {'b','c','e','f'} 4 name1.difference_update(name2) 5 #相当于: name1 = name1 - name2 6 print(name1) 7 8 输出: 9 {'a', 'd'}
- symmetric_difference / ^:交叉补集
def symmetric_difference(self, *args, **kwargs)
1 例: 2 name1 = {'a','b','c','d'} 3 name2 = {'b','c','e','f'} 4 print(name1.symmetric_difference(name2)) 5 print(name1^name2) 6 7 输出: 8 {'d', 'a', 'e', 'f'} 9 {'d', 'a', 'e', 'f'}
- isdisjoint:两个集合如果不存在交集,则返回True,否则False。
- issubset:如果第一个集合是第二个集合的子集,返回True;a < b , a.issubset(b) =True
- issuperset:第一个集合是第二个集合的父集,返回True;a < b , b.issuperset(a) = True
- update:更新多个值,可以是元组、列表等
def update(self, *args, **kwargs)
1 例: 2 name1 = {'a','b','c','d'} 3 name2 = {'b','c','e','f'} 4 name1.update(name2) 5 print(name1) 6 7 输出: 8 {'d', 'b', 'f', 'e', 'c', 'a'}
二、format:格式化
- %s:使用 % 号进行拼接,s 表字符串,可加字符串,数字,列表(%d:只能添加数字)
1 例: 2 msg = '%s is a %s.'%('Jack','boy') 3 print(msg) 4 5 输出: 6 Jack is a boy.
- %f:打印浮点数,默认到小数点后6位,.2:表示精确到小数点后2位,%%:表示显示一个%
1 例: 2 a = 'percent %.2f %%' %99.8421155 3 print(a) 4 5 输出: 6 percent 99.84 %
- key,value:通过键值对取值
1 例: 2 msg = '%(name)s age is %(age)d.'%{'name':'Jack','age':18} 3 print(msg) 4 5 输出: 6 Jack age is 18.
1 例: 2 a = 'The number is %(num).2f' %{'num':12.333421} 3 print(a) 4 5 输出: 6 The number is 12.33
- 百分号方式:
%[(name)][(flags)][width].[precision]typecode
- (name) :可选,用于指定key;
- flags :可选,包括以下的值:
- + 右对齐,正数加正号,负数加负号;
- - 左对齐,正数无符号,负数加负号;
- 空格 右对齐,正数前加空格,负数加负号;
- 0 右对齐,正数前无符号,负数加负号,用0填充空白;
- width :可选,占有宽度;
- .precision:可选,小数点后保留的数;
- typecode:必选。
1 例: 2 a = 'The number is 33[40;1m%(num)20.2f 33[0m %%' %{'num':12.333421} 3 print(a) 4 5 输出: 6 The number is 12.33 %