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





























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