三、集合与格式化

一、set:集合

(a = {...  } 或 a = set(... ) 内部进行for循环,来表示集合)当a = frozenset(...  )时,集合表不可变类型,以下内置方法不可用。

不同元素组成,无序,元素必须是不可变类型,集合本身是可变类型(不可变:字符串,数字,元组;可变:列表,字典,集合。)

方法:

  1. add:添加;
  2. clear:清空;
  3. copy:拷贝;
  4. pop:随机删除;
  5. remove:加参数删除,元素不存在时报错;
  6. discard:加参数删除,元素不存在时不报错;
  7. 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'}
  8. 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'}
  9. 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'}
  10. 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'}
  11. 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'}
  12. isdisjoint:两个集合如果不存在交集,则返回True,否则False。
  13. issubset:如果第一个集合是第二个集合的子集,返回True;a < b , a.issubset(b) =True
  14. issuperset:第一个集合是第二个集合的父集,返回True;a < b , b.issuperset(a)  = True
  15. 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:格式化

  1. %s:使用 % 号进行拼接,s 表字符串,可加字符串,数字,列表(%d:只能添加数字)
    1 例:
    2 msg = '%s is a %s.'%('Jack','boy')
    3 print(msg)
    4 
    5 输出:
    6 Jack is a boy.
  2. %f:打印浮点数,默认到小数点后6位,.2:表示精确到小数点后2位,%%:表示显示一个%
    1 例:
    2 a = 'percent %.2f %%' %99.8421155
    3 print(a)
    4 
    5 输出:
    6 percent 99.84 %
  3. 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
  4. 百分号方式:
    %[(name)][(flags)][width].[precision]typecode
  • (name) :可选,用于指定key;
  • flags     :可选,包括以下的值:
    • +        右对齐,正数加正号,负数加负号;
    • -         左对齐,正数无符号,负数加负号;
    • 空格 右对齐,正数前加空格,负数加负号;
    • 0         右对齐,正数前无符号,负数加负号,用0填充空白;
  • width   :可选,占有宽度;
  • .precision:可选,小数点后保留的数;
  • typecode:必选。
    1 例:
    2 a = 'The number is 33[40;1m%(num)20.2f33[0m %%' %{'num':12.333421}
    3 print(a)
    4 
    5 输出:
    6 The number is                12.33 %
    33[40;1m......33[0m   #表示给这段范围内的内容添加颜色,40:颜色  
    %(num)20.2f     # 20 :表右对齐20个格子。

.format方法:可用索引,键值对,列表等取值

1 例:
2 a = '{1} is a {0}.'.format('boy','Jack')
3 print(a)
4 
5 输出:
6 Jack is a boy.
1 例:
2 a = '{name} age is {age}.'.format(name='Jack',age=18)
3 print(a)
4 
5 输出:
6 Jack age is 18.
1 例:
2 a = '{:s},{:d},{:b},{:o},{:x},{:X},{:%},{:f}'.format('Jack',15,15,15,15,15,15,15.11)
3 #字符串,整数,二进制,八进制,十六制作,十六进制大写,百分比,浮点数
4 print(a)
5 
6 输出:
7 Jack,15,1111,17,f,F,1500.000000%,15.110000
原文地址:https://www.cnblogs.com/liqiongming/p/10045555.html