python

参考文件

参考链接

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

其他

其他

fileinput

函数 描述
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]
posted @ 2022-01-24 19:54  lifei888  阅读(40)  评论(0)    收藏  举报