1、使用分段执行法:
在代码块前加入#%%,右下角提示框选择Use scientific mode
2、查看当前程序的执行路径:
import os
print(os.getcwd())
3、输出虚拟环境的依赖:
pip freeze > requirements.txt
4、按10个空格输出某个字符串,负号代表左对齐,不加负号代表右对齐。以及输出某小数的2位小数,逗号表示千位符:
print('this is a %d test for %d dollar is %s very much' % (1,2,'xxx'))
print('%-10s = %,.2f' % ('my_var',1234561.0003))
>>>
this is a 1 test for 2 dollar is xxx very much
my_var = 1,234,561.00
5、使用enumerate函数来枚举list中的下标和值:
panty = [('china',100.0201),('america',50.3945),('japan',20.234)]
for i,(count,score) in enumerate(panty,1): #enumerate中的第二个参数是start int
print('%d : %-10s get %.2f' % (i,count,score))
#或 print(f'{i} : {count:<10s} get {score:.2f}')
>>>
1 : china get 100.02
2 : america get 50.39
3 : japan get 20.23
6、将模型打包成pickle时,会遇到将自己写的类的路径也加进pickle的情况,这时候在新项目调用pickle时,要解决不同操作环境下的获取当前路径问题:
import os,sys
base_dir=os.path.dirname(__file__)
sys.path.append(base_dir) #临时修改环境变量
7、灵活运用unpacking机制:
temp = a[1]
a[1] = a[2]
a[2] = temp
可以使用unpacking写成:
a[1],a[2] = a[2],a[1]
8、使用zip可以打包多个迭代器,使用zip*可以解压
import numpy as np
a=[1,2,3]
b=[4,5,6]
c=[7,8,9]
zz=zip(a,b,c)
print(zz)
x,y,z=zip(*zz)
print(x)
print(y)
print(z)
>>>
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
(1, 2, 3)
(4, 5, 6)
(7, 8, 9)
9、利用切片对list或str进行快速翻转:
x = b'helloworld'
y = x[::-1]
>>>
b'dlrowolleh'
10、yield的用法,相比return,yield是请求一次,才会返回一个值,而且请求的方法会暂停。而return会返回所有值,所以对于内存消耗来说,yield更好。
Python中return和yield的区别 - 诸子流 - 博客园 (cnblogs.com)
11、要想获得某个类中的属性,首先实例化一个类对象,然后类对象.__dict__.items()方法可以获取类的属性
class Tool:
def __init__(self,name,weight):
self.name = name
self.weight = weight
a = Tool('plane',10000)
for key,value in a.__dict__.items():
print(f'{key}:{value}')
>>>
name:plane
weight:10000
12、要想获取字典中的第一个值,使用 next(iter(dict)) 方法来抽取。
使用iter封装的词典,可以使用next函数来逐一抽取元素,这时候的抽取是先进先出法。
13、在命令行执行.py程序时,使用mypy包可以严格检查程序中的所有错误和警告,并输出。调用语句为:python -m mypy --strict test.py
14、x.startswith('h')方法,返回bool值,判断x是否以某某开头,可以向startswith里传入,增加多个判断选项。
15、x.rindex('y')获取x中从右边起第一个y字符的位置
16、如果没有该文件夹,自己创建文件夹的方法:
if not os.path.exists(dest_dirname):
os.mkdir(dest_dirname)
17、获取某文件的大小(字节):
os.stat(filename).st_size
18、获取list中所有元组的第一个元素和最后一个元素:
token_starts, token_ends = list(zip(*token_spans))