1. 统计出现的次数
arr = "abacdasca"
d={}
for i in arr:
d[i]=d.get(i,0)+1
print(d)
2. pickle
import glob
#查找目录中出现单个字符并以.html为后缀的文件
print(glob.glob("?.html"))
#查找目录中所有以.html为后缀的文件
print(glob.glob("*.html"))
# 查找目录中出现a.html或b.html的文件
print(glob.glob('[a|b].html'))
3. glob
import pickle
# pickle: 对一个 Python 对象结构的二进制序列化和反序列化。
data = "Today is 2020.09.10"#字符串
# data = {'a':1, 'b':2, 'c':3}#字典
with open("data_file.pickle","rb") as f:
temp = pickle.load(f)
f.close()
with open("data_file1.pickle","ab") as f:
# print(temp+data)
pickle.dump(data+"\n"+temp,f)
print("over")
f.close()
with open("data_file1.pickle","rb") as f:
data1 = pickle.load(f)
print(data1)
f.close()
mystr = pickle.dumps(data1)
print(mystr)
# pickle.dumps()
4. itertools
4.1 combinations 组合
print("两两组合".center(20,'-'))
for o in itertools.combinations("甲乙丙丁戊",r=2):
print("".join(x for x in o),end=" ")
print()
print("三三组合".center(20,'-'))
for o in itertools.combinations("甲乙丙丁戊",r=3):
print("".join(x for x in o),end=" ")
print()
4.2 排列
print("三三排列".center(20,'-'))
for i in itertools.permutations("甲乙丙丁戊",r=3):
print("".join(x for x in i),end=" ")
print()
4.3 循环组合
print("组合循环".center(20,'-'))
for i in itertools.product("甲乙丙丁","ABCD"):
print("".join(x for x in i),end=" ")
print("\n组合循环".center(20,'-'))
for i in itertools.product("甲乙丙丁",repeat=2):
print("".join(x for x in i),end=" ")
print("\n组合循环".center(20,'-'))
for i in itertools.product("甲乙","AB","12"):
print("".join(x for x in i),end=" ")
4.4 无限迭代
print("\n无限迭代".center(20,'-'))
def show(Iter,total,name):
print(name.center(20,'-'))
for i in range(total):
print(next(Iter),end=" ")
print()
c1 = itertools.count(start=1,step=3)
show(c1,10,"count迭代")
c2 = itertools.cycle("甲乙丙")
show(c2,10,"序列无限重复迭代")
c3 = itertools.repeat(3645)
show(c3,10,"单个元素无限重复迭代")
# 通过takewhile()等函数根据条件判断来截取出一个有限的序列
natuals = itertools.count(1)
ns = itertools.takewhile(lambda x: x <= 10, natuals)
print(list(ns))
结果