【Python】time库、random随机数、pyinstaller库、集合、列表、字典操作符和函数、jieba函数的使用

获取时间的函数

函数描述
time()获取当前时间戳,浮点数
ctime()获取当前时间并以易读方式表示,返回字符串
gmtime()获取当前时间,表示为计算机可处理的时间格式

时间格式化

函数描述
strftime(tpl,ts)tpl是格式化模板字符串,用来定义输出效果;ts是计算机内部时间类型变量
strptime(str,tpl)str是字符串形式的时间值;tpl是格式化模板字符串,用来定义输入效果

程序计时

函数描述
perf_counter返回一个CPU级别的精确时间计数值,单位为秒。由于这个计数值七点不确定,连续调用差值才有意义
sleep(s)s拟休眠的时间,单位是秒,可以是浮点数

基本随机数函数

函数描述
seed(a=None)初始化给定的随机数种子,默认为当前系统时间
random()生成一个[0.0,1.0)之间的随机小数

扩展随机数函数

函数描述
randint(a,b)生成一个[a,b]之间的整数
randrange(m,n[,k])生成一个[m,n)之间以k为步长的随机整数
getrandbits(k)生成一个k比特长的随机整数
uniform(a,b)生成一个[a,b]之间的随机小数
choice(seq)从序列seq中随机选择一个元素
shuffle(seq)将序列seq中元素随机排列,返回打乱后的序列

PyInstaller库常用参数

下载pyinstaller包,在终端命令行中输入以下命令进行下载:

pip install pyinstaller
参数描述
-h查看帮助
–clean清理打包过程中的临时文件
-D,-onedir默认值,生成dist文件夹
-F,–onefile在dist文件夹中只生成独立的打包文件
-i<图标文件名.ico>指定打包程序使用的图标(icon)文件

集合操作符

操作符及应用描述
S | T返回一个新集合,包括在集合S和T中的所有元素
S - T返回一个新集合,包括在集合S但不在T中的元素
S & T返回一个新集合,包括同时在集合S和T中的元素
S ^ T返回一个新集合,包括集合S和T中的非相同元素
S <= T 或 S < T返回 True / False ,判断S和T的子集关系
S >= T 或 S > T返回 True / False ,判断S和T的包含关系

示例:

A = {"p","y",123}
B = set("pypy123")
print(A-B)
print(A&B)
print(A^B)
print(B-A)
print(A|B)

结果:
在这里插入图片描述

4个增强操作符

操作符及应用描述
S |= T更新集合S,包括在集合S和T中的所有元素
S -= T更新集合S,包括在集合S但不在T中的元素
S &= T更新集合S,包括同时在集合S和T中的元素
S ^= T更新集合S,包括集合S和T中的非相同元素

集合处理方法

操作函数或方法描述
S.add(x)如果x不在集合S中,将x增加到S
S.discard(x)移除S中元素x,如果x不在集合S中,不报错
S.remove(x)移除S中元素x,如果x不在集合S中,产生KeyError异常
S.clear()移除S中所有元素
S.pop()随机返回S中的一个元素,更新S,若S为空产生KeyError异常
S.copy()返回集合S的一个副本
len(S)返回集合S的元素个数
x in S判断S中元素x,x在集合S中,返回True,否则返回False
x not in S判断S中元素x,x不在集合S中,返回True,否则返回False
set(x)将其他类型变量x转变为集合类型

序列操作符

操作符及应用描述
x in s如果x是序列s的元素,返回True,否则返回False
x not in s如果x不是序列s的元素,返回True,否则返回False
s + t连接两个序列s和t
s*n 或 n*s将序列s复制n次
s[i]索引,返回s中的第i个元素,i是序列的序号
s[i:j] 或 s[i:j:k]切片,返回序列s中第 i 到 j ,以 k 为步长的元素子序列
函数和方法描述
len(s)返回序列s的长度
min(s)返回序列s的最小元素,s中元素需要可比较
max(s)返回序列s的最大元素,s中元素需要可比较
s.index(x) 或 s.index(x,i,j)返回序列s从i开始到j位置中第一次出现元素x的位置

示例:

ls = ["python",123,".io"]
print(ls[::-1])
s = "python123.io"
print(s[::-1])
print(len(ls))
print(max(s))

结果:
在这里插入图片描述

列表类型

函数或方法描述
ls[i] = x替换列表 ls 第 i 元素为 x
ls[i:j:k] = lt用列表 lt 替换 ls 切片后所对应元素子列表
del ls[i]删除列表 ls 中第 i 个元素
del ls[i:j:k]删除列表 ls 中第 i 到第 j 以 k 为步长的元素
ls += lt更新列表 ls ,将列表 lt 元素增加到列表 ls 中
ls *= n更新列表 ls ,其元素重复 n 次
函数或方法描述
ls.append(x)在列表 ls 最后增加一个元素x
ls.clear()删除列表 ls 中所有元素
ls.copy()生成一个新列表,赋值 ls 中所有的元素
ls.insert(i,x)在列表 ls 的第 i 位置增加元素 x
ls.pop(i)在列表 ls 中第 i 位置元素取出并删除该元素
ls.remove(x)将列表 ls 中出现的第一个元素 x 删除
ls.reverse()将列表 ls 中的元素反转

字典类型

函数或方法描述
del d[k]删除字典 d 中键 k 对应的数据值
k in d判断键 k 是否在字典 d 中,如果在返回 True ,否则 False
d.keys()返回字典 d 中所有的键信息
d.values()返回字典 d 中所有的值信息
d.items()返回字典 d 中所有的键值对信息
d.get(k,< default >)键 k 存在,则返回相应值,不在则返回 < default > 值
d.pop(k,< default >)键 k 存在,则取出相应值,不在则返回 < default > 值
d.popitem()随机从字典 d 中取出一个键值对,以元组形式返回
d.clear()删除所有的键值对
len(d)返回字典 d 中元素的个数

jieba库的使用

  • 安装:
pip install jieba
  • jieba分词的三种模式:
    精确模式:把文本精确的切分开,不存在冗余单词
    全模式:把文本中所有可能的词语都扫描出来,有冗余
    搜索引擎模式:在精确模式基础上,对长词再次切分
函数描述
jieba.lcut(s)精确模式,返回一个列表类型的分词结果
jieba.lcut(s,cut_all=True)全模式,返回一个列表类型的分词结果,存在冗余
jieba.lcut_for_search(s)搜索引擎模式,返回一个列表类型的分词结果,存在冗余
jieba.add_word(w)向分词词典增加新词w

示例1:找出哈姆雷特中的高频词

def getText():
    txt = open("Hamlet.txt","r").read()     #打开文件
    txt = txt.lower()   #全部转为小写
    for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_`{|}~':   #将所有特殊字符转化为空格
        txt = txt.replace(ch," ")
    return txt
hamletTxt = getText()
words = hamletTxt.split()   #切割字符串
counts = {}
for words  in words:
    counts[words] = counts.get(words,0) + 1
items = list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)
for i in range(10):
    words,counts = items[i]
    print("{0:<10}{1:>5}".format(words,counts))

结果:
在这里插入图片描述

示例2:找出三国演义中出场次序最多的十个人物

import jieba
txt = open("三国演义.txt","r",encoding="utf-8").read()  #读取文件
excludes = {"将军","却说","二人","不可","荆州","不能","如此","商议","如何","军士","主公","左右","军马",\
            "引兵","次日","大喜","天下","东吴","于是","今日","不敢","魏兵","陛下","一人","都督", \
            "人马","不知"}
words = jieba.lcut(txt)
counts = {}
for word in words:
    if len(word) == 1:
        continue
    elif word == "诸葛亮" or word == "孔明曰":
        rword = "孔明"
    elif word == "关公" or word == "云长":
        rword = "关羽"
    elif word == "玄德" or word == "玄德曰":
        rword = "刘备"
    elif word == "孟德" or word == "丞相":
        rword = "曹操"
    else:
        rword = word
    counts[rword] = counts.get(rword,0) + 1
for word in excludes:
    del counts[word]
items = list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)
for i in range(10):
    word, count = items[i]
    print("{0:<10}{1:>5}".format(word, count))

结果:
在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值