python的一些小技巧

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

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值