参考文件
参考链接
解密 Python 中的对象模型
解密 Python 中的对象模型
正则表达式
解密正则表达式
netutils
Netutils Functions
time
函数
| 函数 |
描述 |
| asctime([tuple]) |
将时间元组转换为字符串 |
| strptime(format[,t]) |
将时间元组转换为指定格式的字符串 |
| strptime(string[,format]) |
将字符串解析为时间元组 |
| localtime(secs) |
将秒数转换为日期元组,以本地时间为准 |
| mktime() |
将时间元组转换为本地时间(秒数) |
| sleep(secs) |
休眠(不做任何事情)secs |
| time() |
当前时间(新纪元开始后的秒数,以utc为准) |

>>> import time
>>> time.time()
1676355813.548737
>>> time.asctime()
'Tue Feb 14 14:23:45 2023'
>>> time.localtime()
time.struct_time(tm_year=2023, tm_mon=2, tm_mday=14, tm_hour=14, tm_min=24, tm_sec=6, tm_wday=1, tm_yday=45, tm_isdst=0)
>>> time.mktime()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: mktime() takes exactly one argument (0 given)
>>> time.time()
1676355863.229053
>>> time.strftime("%Y-%m-%d %H:%M:%S")
'2023-02-14 14:28:11'
>>> time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()+86400))
'2023-02-15 14:28:49'
>>> aa='2020-12-16T18:29:40+08:00'
>>> format='%Y-%m-%dT%H:%M:%S+08:00'
>>> time.strptime(aa,format)
time.struct_time(tm_year=2020, tm_mon=12, tm_mday=16, tm_hour=18, tm_min=29, tm_sec=40, tm_wday=2, tm_yday=351, tm_isdst=-1)
其他
其他
| 函数 |
描述 |
| input(files[,inplace[,backup]]) |
便于遍历多个输入流中的行 |
| filename() |
返回当前文件的名称 |
| lineno() |
返回当前(累计)的行数 |
| filelineno() |
返回当前文件的行数 |
| isfirstline() |
检查当前行是否是文件的第一行 |
| isstdin() |
检查最后一行是否来自sys.stdin |
| nextfile() |
关闭当前文件,移动到下一个文件 |
| close() |
关闭序列 |
集合、堆和双端队列
集合
set(list(range(10)))
set([0,1,2,3])
set('free','fie','foe')
a=set([1,2,3])
b=set([2,3,4])
a.union(b)
a|b
a&b
c=a&b
c.issubset(a) #True
c<=a
c.issuperset(a) #False
a.intersetion(b) 等价于 a&b
a.difference(b) 等价于 a-b
a.symmetric_difference(b) 等价于a^b
a.copy()
堆
堆属性
位于i位置上的元素总比i//2位置处的元素大(反过来说就是i位置处的元素总比2i以及2i+1位置片的元素小)。堆属性及底层算法
heapq模块中的重要函数
| 函数 |
描述 |
| heappush(heap,x) |
将x推入堆 |
| heappop(heap) |
将堆中的最小元素谈出 |
| heapify(heap) |
将heap属性强制应用到任意一个列表 |
| heapreplace(heap,x) |
将堆中最小元素谈出,同时将x插入堆 |
| nlargest(n,iter) |
返回iter中第n大的元素 |
| nsmallest(n,iter) |
返回iter中第n小的元素 |
>>> from heapq import *
>>> from random import shuffle
>>> data=list(range(10))
>>> shuffle(data)
>>> heapify(data)
>>> data
[0, 1, 3, 5, 2, 9, 7, 8, 6, 4]
>>> data.heapop()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'list' object has no attribute 'heapop'
>>> heappop(data)
0
>>> heappop(data)
1
>>> data
[2, 4, 3, 5, 6, 9, 7, 8]
>>>
双端对列
双端队列(double-ended queue,或称deque)在需要按照元素增加的顺序来移除元素时非常有用
>>> from collections import deque
>>> q=deque(range(5))
>>> q.append(5)
>>> q
deque([0, 1, 2, 3, 4, 5])
>>> q.appendleft(6)
>>> q
deque([6, 0, 1, 2, 3, 4, 5])
>>> q.pop()
5
>>> q
deque([6, 0, 1, 2, 3, 4])
>>> q.popleft()
6
>>> q
deque([0, 1, 2, 3, 4])
>>> q.rotate(3)
>>> q
deque([2, 3, 4, 0, 1])
>>> q
deque([2, 3, 4, 0, 1])
>>> q.rotate(-1)
>>> q
deque([3, 4, 0, 1, 2])
>>>
random
函数
| 函数 |
描述 |
| random() |
返回0<n<=1之间的随机实数n |
| getrandbits(n) |
以长整型形数返回n个随机位 |
| uniform(a,b) |
返回随机实数n,其中a<=n<b |
| randrange([start],stop,[step]) |
返回range(start,stop,step)中的随机数 |
| choice(seq) |
从序列seq中返回随机元素 |
| shuffle(seq[,random]) |
原地指定序列seq |
| sample(seq,n) |
从序列seq中选择n个随机且独立的元素 |
>>> aa=range(100)
>>> random.shuffle(aa)
>>> type(aa)
<type 'list'>
>>> aa
[28, 25, 63, 45, 18, 7, 86, 59, 33, 8, 1, 82, 9, 15, 48, 61, 56, 53, 69, 83, 76, 19, 17, 78, 97, 77, 93, 49, 4, 90, 75, 23, 85, 24, 20, 54, 2, 99, 12, 68, 96, 6, 11, 46, 40, 52, 44, 50, 38, 88, 74, 51, 0, 41, 3, 81, 71, 62, 79, 95, 87, 64, 57, 16, 73, 35, 31, 55, 27, 5, 36, 26, 91, 65, 21, 94, 14, 66, 29, 37, 67, 98, 47, 32, 34, 72, 43, 39, 60, 30, 84, 22, 92, 58, 70, 80, 10, 42, 89, 13]