标准库与数据操作
模块
模块即为函数集合的文件, 文件名作为全局的变量(__name__
)可以被其他模块导入
1 | # package file PriceAnalysis.py |
搜索路径为 os.getcwd()
-> sys.path
包
包 文件夹必须有 __init__.py
文件, 但内容可以为空, 用以标记文件夹是否为包.
1 | import mainPkg.subPkg.className |
定义 __init__.py
支持 import *
1 | __all__ = [file1, file2...] |
内置模块
数学模块: math(float), cmath(int, float, complex)
时间日期: calendar(获取, 显示), time(计算, 除了, 格式化), datetime.datetime
calendar.isleap(2016)
time.time(): timestamp
time.struct_time((tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec, tm_wday, tm_yday, tm_isdst)): struct_time
time.localtime(timestamp): strct_time
time.asctime(structTime): str
time.ctime(timestamp): str
time.strptime(YmdStr, YmdTemplate): struct_time 用时间格式模板(例如”%Y-%m-%d”)解析时间字符串(“2018-09-21”)
time.strftime(YmdTemplate, structTime): str 将 struct 对象格式化成指定时间模板
Y/y-m/b/B-d H/I-M-S a/A/w/W/U
年月日 时分秒 星期
datetime.now(): datetime
计算时间差, 返回 datetime.delta 类型, 可与 datetime 类型直接加减运算.
str(dateTime): str
dateTime.strftime(YmdTemplate): str
dateTime.strptime(YmdStr, YmdTemplate): datetime
内置数据类型操作
序列 list, tuple, range + str
x (not) in s 是否在其中
ns = +
链接, s * n 重复
s[i] 取元素
s[i,j,k] 切片, 不包括 j, 步长 k 默认 1
len(), min(), max()
s.index(x, i, j) 索引值, 起点 i 默认 0, 终点 j 默认 len() - 1
s.count(x) 统计
- 创建 list([..]) | [..]
s.append(x), s.extend([..]/(..))
s.insert(i, x)
x = s.pop(i) 第 i 个元素默认删最右端
s.remove(x) 删左边第一次出现, 不存在报错, 所以先 count 统计判断
s.sort() s.reverse() 升降序
- 创建 tuple((..)) | 逗号 | (..)
列表->元组 tuple(list)
字符串->元组 tuple(str)
值不可变, 无个性化方法
- 创建 range(start, end, step)
值不可变, 经常与 for 联合使用.
无法直接查看其中枚举值, 只能将其转换成 tuple/list 查看
range->列表: list(range)
range->元组: tuple(range)
不可以使用 *
进行重复
- 创建 str() | “”,’’,””” .. “””
s.split(spliter): list 默认空格分割
str.join(iter): str 组合
s.islower/isupper/istitle()
s.lower/upper/title/capitalize/swapcase()
词频统计, 最好先全部转换成小写, 避免首字母大写造成的问题.
s.find/rfind/index/rindex(x) 不存在 find 返回-1, index 报错
s.startswith/endswith(ns/tpl) 是否以 str, str 元组开头
s.strip/rstrip(rem) 删掉两端/末尾 rem 字符, 默认空白字符
字典
创建 {}, dict({}), dict(k=v,…), dict((k,v),…), dict(zip([keyList], [valueList]))
dic.items(): [(key, value), …]
dic.keys(): [key, …]
dic.values(): [value, …]
可以进行 for in 循环.
查 dic[key], dic.get(key)
改 dic[key] = val, dic.update(key=value)
增 dic[nkey] = val
删 del dic[key]
清空 dic.clear() 删除所有 key, 返回空字典{}
复制 ndic = dic.copy()
合并 ndic = dict(dic1, **dic2)
集合
无序, 不重复, 不能索引. 列表转集合可以去重.
创建可变集合 set() 或 {}
创建不可变集合 frozenset()
可变集合 st.add(v), st.remove(v)
元素个数 len(st)
遍历 for v in st:
∩
交 union |
, ∪
并 interaction &
, -
差 difference -
, 对称差 symmetric_difference ^
(∪
并-∩
交)
子集 issubset <=
, 父集 issuperset >=
, 无关 isdisjoint