排列组合与文件查找

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))

结果
在这里插入图片描述

5. 文件路径

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值