python语法小技巧

越写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):





























發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章