python语法使用的小技巧
程序员文章站
2024-01-16 23:09:10
越写python,越觉得python的小技巧很重要
没有任何顺序,只是在写了一个demo后,总结了一些有趣或者很有用的东西
1、全局变量? 局部变量
首先,基础变量,如int...
越写python,越觉得python的小技巧很重要
没有任何顺序,只是在写了一个demo后,总结了一些有趣或者很有用的东西
1、全局变量? 局部变量
首先,基础变量,如int类型,str类型,都有基础变量和全部变量的区分。一般的变量,都是局部变量,但是如果你想要在一个函数中统计一些数据,然后在主函数使用,应该用全部变量
eg:
def fun(): global NNNum NNNum+=1 NNNum=0 fun() fun() print(NNNum) #NNNum=2
而list ,dict是不区*部变量和全局变量的,全局唯一
2、参数中或者函数中有list或者dict
使用copy,除非任务如此,否则尽量不要修改原内容
简单的复制:
A=[1,2,3] C=A #浅复制 B=A[:] #深复制 B.append(4) print(A) #A=[1,2,3] C.append(4) print(A) ##A=[1,2,3,4]
3、读取一个目录下的
import os #引入os库 files = os.listdir(filepath)#使用os.listdir读取到一个目录下面所有的文件名 s = [] fileNum = 0# # 每一篇文章 for file in files:#循环读出,每一个文件 if not os.path.isdir(file):#以下6行是判断边界,可读取想要读取的文件 if fileNum < fist: pass else: if fileNum == last: break else: fd = open(filepath + file, 'r', encoding='utf-8', errors="ignore")#打开文件 iter_i = iter(fd)#读取 sstr = '' for line in iter_i: sstr += line # juzhen_init(sstr) s.append(sstr) fd.close()#关闭 fileNum += 1
4、sorted
#对list排序很简单,但是对dict排序会有一些注意的 eg:对dictS进行排序(按照value) dictSort = sorted(dictS.items(), key=lambda x: x[1], reverse=True)
5、列表解析
A=[ i for i in dictAllSort if i[1]>20] listKey=[i[0] for i in Tota]
6、二维数组初始化
juzhen = [[0 for i in range(row_num)] for j in range(col_num)]
复制一个二维数组:
dataList = [[juzhen[j][i] for i in range(len(juzhen[0]))] for j in range(len(juzhen))]
7、pickle
如何在几个文件中互相使用变量
1、import或者from *** import ***
2、使用一个比较大的结构
eg:
#保存 fw = open('./txt/tree.txt', 'wb') # pickle的dump函数将决策树写入文件中 pickle.dump(Tr, fw) # 写完成后关闭文件 fw.close() #读取: filename='./txt/tree.txt' fr=open(filename,'rb') Tr=pickle.load(fr) fr.close()
8、统计数量
dictS = {} #global totalT for eachTxt in listS: # print("eachTxt: ",eachTxt) for fenci in eachTxt: # print("fenci: ",fenci) if fenci in dictS: dictS[fenci] += 1 else: dictS[fenci] = 1
9、 类
class Tree: def createTree(self, dataSet, labels, depth):#一定要有self #如果在类内使用其他函数,则格式为self.func() self.calcShannon( dataSet) def calcShannon(self, dataSet):
下一篇: pySVM