1.集合
集合主要作用:去重;关系运算。
集合的元素遵循三个原则:1:每个元素必须是不可变类型(可hash,可作为字典的key);2:没有重复的元素;3:无序
2.集合的内置方法
(1)将列表转化为一个集合,并将列表中的重复元素删除,生成一个无序的集合
s=set(['alex','alex','王强']) print(s)
set()在创建集合时会自动去重;frozenset()创建出的集合不可被添加删除
(2)添加及删除
s=set(['alex','alex','王强']) s.add('wangqiang') print(s)
add()添加,只能添加一个元素;s1.update(s2)的形式可以更新多个值,将集合s2中的元素更新到s1中
clear()清屏;copy()复制,复制输出无序;
s=set(['alex','alex','王强']) s.remove('wangqiang') print(s)
remove()指定删除,当指定删除的元素不存在时会报错;pop()随机删除;discard()指定删除,当指定删除的元素不存在时不会报错
(3)交集(&或者intersection())
p_s={'lcg','szw','zjw','lcg'} l_s={'lcg','szw','王强'} print(p_s&l_s) print(p_s.intersection(l_s))
输出结果为:{'szw', 'lcg'}
(4)并集(|或者union())
p_s={'lcg','szw','zjw','lcg'} l_s={'lcg','szw','王强'} print(p_s|l_s) print(p_s.union(l_s))
输出结果为:{'zjw', 'szw', '王强', 'lcg'}
(5)差集(-或者difference())
p_s={'lcg','szw','zjw','lcg'} l_s={'lcg','szw','王强'} print(p_s-l_s) print(p_s.difference(l_s))
输出结果为:{'zjw'}
p_s-l_s:仅存在于p_s集合里的;l_s-p_s:仅存在于l_s集合里的(输出结果为:{'王强'})
p_s={'lcg','szw','zjw','lcg'} l_s={'lcg','szw','王强'} p_s.difference_update(l_s) print(p_s)
difference_update():求出差集并将结果更新于集合中
(6)交叉补集(^或者symmetric_difference())
p_s={'lcg','szw','zjw','lcg'} l_s={'lcg','szw','王强'} print(l_s^p_s) print(p_s.symmetric_difference(l_s))
输出结果为:{'王强', 'zjw'}。两集合的并集减去两集合的交集
(7)判断两集合是否没有交集
s1={1,2} s2={2,1,5} print(s1.isdisjoint(s2))
输出结果为:false。(没有交集返回值为true,有交集返回值为false)
(8)子集和父集
s1={1,2} s2={1,2,3} print(s1.issubset(s2)) print(s2.issuperset(s1))
输出结果为:true;true(其中,s1.issubset(s2)判断s1 是否是s2 的子集;s2.issuperset(s1)判断s1 是否是s2 的父集)
(9)列表去重
names=['alex','alex','wupeiqi'] names=list(set(names)) print(names)
输出结果为:['wupeiqi', 'alex'](结果仍未列表的形式,结果内的元素是无序的)
3.字符串格式化
a.百分号方式
(1)字符串拼接
msg='i am %s my hobby is %d' % ('wangqiang',18) print(msg)
输出结果为:i am wangqiang my hobby is 18
%s后面可以接任何数据类型,基本接字符串;%d后面接整形数字
tpl = "i am %(name)s age %(age)d" % {"name": "wangqiang", "age": 18} print(tpl)
输出结果为:i am wangqiang my agey is 18(以键的形式传入数据)
(2)打印浮点数(默认保留六位)
tpl = "percent %.2f" % 99.97623444 print(tpl)
输出结果为:percent 99.98。其中,2表示保留小数点后两位
(3)打印百分比(默认保留六位)
tpl = 'percent %.2f %%' % 99.976234444 print(tpl)
输出结果为:percent 99.98%
(4)按指定分隔符将字符串进行拼接
print('root','x','0','0',sep=':')
输出结果为:root:x:0:0
b.format()字符串格式化
(1)以字典的方式进行传入
tpl = "i am {name}, age {age}, really {name}".format(**{"name": "王强", "age": 18}) print(tpl)
输出结果为:i am 王强, age 18, really 王强。相当于命令:
tpl = "i am {name}, age {age}, really {name}".format(name="王强", age=18) print(tpl)
(2)以列表的方式传入
tpl = "i am {:s}, age {:d}".format(*["王强", 18]) print(tpl)
输出结果为:i am 王强, age 18。相当于命令:
tpl = "i am {:s}, age {:d}".format("seven", 18) print(tpl)
(3)
tpl = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%},{}".format(15, 15, 15, 15, 15, 15.87623, 2) print(tpl)
输出结果为:numbers: 1111,17,15,f,F, 1587.623000%,2