1,glob 模式匹配
import glob
for name in glob.glob('dir/*'):
? ? print(name)
dir/file.txt
dir/file1.txt
dir/file2.txt
2,json
json.dumps(result, indent=2, ensure_ascii=False)
第一個參數是數據,第二個參數為空格,第三個參數為false時,才會輸出中文
3,hashcode
1.hashcode是用來查找的,如果你學過數據結構就應該知道,在查找和排序這一章有
例如內存中有這樣的位置
0? 1? 2? 3? 4? 5? 6? 7?
而我有個類,這個類有個字段叫ID,我要把這個類存放在以上8個位置之一,如果不用hashcode而任意存放,那么當查找時就需要到這八個位置里挨個去找,或者用二分法一類的算法。
但如果用hashcode那就會使效率提高很多。
我們這個類中有個字段叫ID,那么我們就定義我們的hashcode為ID%8,然后把我們的類存放在取得得余數那個位置。比如我們的ID為9,9除8的余數為1,那么我們就把該類存在1這個位置,如果ID是13,求得的余數是5,那么我們就把該類放在5這個位置。這樣,以后在查找該類時就可以通過ID除 8求余數直接找到存放的位置了。
2.但是如果兩個類有相同的hashcode怎么辦那(我們假設上面的類的ID不是唯一的),例如9除以8和17除以8的余數都是1,那么這是不是合法的,回答是:可以這樣。那么如何判斷呢?在這個時候就需要定義 equals了。
也就是說,我們先通過 hashcode來判斷兩個類是否存放某個桶里,但這個桶里可能有很多類,那么我們就需要再通過 equals 來在這個桶里找到我們要的類。
那么。重寫了equals(),為什么還要重寫hashCode()呢?
想想,你要在一個桶里找東西,你必須先要找到這個桶啊,你不通過重寫hashcode()來找到桶,光重寫equals()有什么用啊
4,Python strip() 方法用于移除字符串頭尾指定的字符(默認為空格或換行符)或字符序列。
1,all函數
all() 函數用于判斷給定的可迭代參數 iterable 中的所有元素是否都為 TRUE,如果是返回 True,否則返回 False。
元素除了是 0、空、None、False 外都算 True。
>>>?all(['a',?'b',?'c',?'d'])?# 列表list,元素都不為空或0
True
>>>?all(['a',?'b',?'',?'d'])??# 列表list,存在一個為空的元素
False
>>>?all([0,?1,2,?3])?# 列表list,存在一個為0的元素
False
2,set函數
set() 函數創建一個無序不重復元素的集合,可進行關系測試,刪除重復數據,還可以計算交集、差集、并集等,返回新的集合對象
a=['1','2','3','2','2','3']
b=set(a)
print(b)? ? ? ? ? ? #set(['1', '3', '2'])
str='hello,welcome to China!'
c=set(str)?
print(c)? ? ? ? #set(['a', ' ', 'c', 'e', 'C', 'h', 'm', 'l', 'o', ',', 'i', '!', 't', 'w', 'n'])
4,if type(rootValue[key]).__name__=="dict"
判斷rootValue字典的類型
5,異常處理
#檢測的語句
try:
A
#發生異常之后的語句
except BaseException :
B
6,for 的妙用
n = [j for j in range(10) if j <5]? ? #for返回的是j
print(n)
#[0, 1, 2, 3, 4]
7,round
控制float 數據精度,round(2.3334,2)
前為數據,后為保留幾位小數
1,all函數
all() 函數用于判斷給定的可迭代參數 iterable 中的所有元素是否都為 TRUE,如果是返回 True,否則返回 False。
元素除了是 0、空、None、False 外都算 True。
>>>?all(['a',?'b',?'c',?'d'])?# 列表list,元素都不為空或0
True
>>>?all(['a',?'b',?'',?'d'])??# 列表list,存在一個為空的元素
False
>>>?all([0,?1,2,?3])?# 列表list,存在一個為0的元素
False
2,set函數
set() 函數創建一個無序不重復元素的集合,可進行關系測試,刪除重復數據,還可以計算交集、差集、并集等,返回新的集合對象
a=['1','2','3','2','2','3']
b=set(a)
print(b)? ? ? ? ? ? #set(['1', '3', '2'])
str='hello,welcome to China!'
c=set(str)?
print(c)? ? ? ? #set(['a', ' ', 'c', 'e', 'C', 'h', 'm', 'l', 'o', ',', 'i', '!', 't', 'w', 'n'])
4,if type(rootValue[key]).__name__=="dict"
判斷rootValue字典的類型
5,異常處理
#檢測的語句
try:
A
#發生異常之后的語句
except BaseException :
B
6,for 的妙用
n = [j for j in range(10) if j <5]? ? #for返回的是j
print(n)
#[0, 1, 2, 3, 4]
7,round
控制float 數據精度,round(2.3334,2)
前為數據,后為保留幾位小數
1,表示無窮大與無窮小
float('inf')和float('-inf')
2,列表的pop用法,將列表元素彈出,可指定索引
list1 = ['Google', 'Runoob', 'Taobao']
list1.pop()
print ("列表現在為 : ", list1)
#列表現在為 : ['Google', 'Runoob']
list1.pop(1)
print ("列表現在為 : ", list1)
#列表現在為 : ['Google']
2,列表末尾追加list.extend
aList = [123, 'xyz', 'zara', 'abc', 123];
bList = [2009, 'manni'];
aList.extend(bList)
print "Extended List : ", aList ;
#Extended List : [123, 'xyz', 'zara', 'abc', 123, 2009, 'manni']
3,eval函數
將字符串進行多種轉換,函數,字典,列表等
envl('service.login')()
a ="[[1,2], [3,4], [5,6], [7,8], [9,0]]"
print(type(a))? ? ?#str
b =eval(a)
print(type(b))
print(b)? ? ? #list??
4,雙百分號的用法
file =open('%s_%s' % (name_list[i], date_list[i]), 'a', encoding='utf-8')
格式化三種方法??https://www.cnblogs.com/xioawu-blog/p/12410759.html
5,判斷文件是否存在
if not os.path.exists('test.csv'):
如果test.csv
6,獲取文件名
path = '/Users/beazley/Data/data.csv'
os.path.basename(path)
7,#ceil() 函數返回比當前數字大的整數
math.ceil()
8,isinstance() 函數來判斷一個對象是否是一個已知的類型,類似 type()
? ? if (isinstance(algo, (LogisticRegression,
? ? ? ? ? ? ? ? ? ? ? ? ? KNeighborsClassifier,
? ? ? ? ? ? ? ? ? ? ? ? ? GaussianNB,
? ? ? ? ? ? ? ? ? ? ? ? ? DecisionTreeClassifier,
? ? ? ? ? ? ? ? ? ? ? ? ? RandomForestClassifier,
? ? ? ? ? ? ? ? ? ? ? ? ? GradientBoostingClassifier))):
1,關于最近鄰居算法,如果兩個鄰居k+1和k,距離相同,但標簽不同,結果取決于數據集的排序
2,列表元素選擇
a = [[2, 3], [5, 4], [9, 6], [4, 7], [8, 1], [7, 2]]
a[:, 0],第一個逗號前的:表示選擇多少個列表,如a[:, 0]為選擇所有列表的第一個元素,a[1:, 0],為選擇第一個列表之后的列表,逗號后的數字為選擇列表中的第幾個元素
3,字典的get方法
countLabel = {}
countLabel[label] = countLabel.get(label, 0) +1
# 字典的get方法,第一個參數為鍵值,找到則返回對應的value值,沒找到則返回第二個參數
4,字典排序
countLabel_sorted =sorted(countLabel.items(), key=operator.itemgetter(1),reverse=True)
# operator.itemgetter(1)為value,operator.itemgetter(0)為key
5,計算集合的歐氏距離
from scipy.spatial.distanceimport pdist
Y = pdist(X, 'euclidean')
計算矩陣X樣本之間(m*n)的歐氏距離(2-norm)?,返回值為 Y (m*m)為壓縮距離元組或矩陣。第二個參數默認為歐氏距離。
6,zip函數
將可迭代的對象作為參數,將對象中對應的元素打包成一個個元組,然后返回由這些元組組成的列表
colors = ['r', 'y', 'b']
print(list(zip(range(3), colors)))
# [(0, 'r'), (1, 'y'), (2, 'b')]
7,re
findall,comple,sub,split
findall? ? ?https://www.cnblogs.com/syw20170419/p/9749809.html
sub? ? ?https://blog.csdn.net/darkman_ex/article/details/80975764
split? ? ? ? ? ? ? ?https://blog.csdn.net/Darkman_EX/article/details/80973656
sentence_delimiters = re.compile(u'[。?!;!?]')
sentences =[i for i in sentence_delimiters.split(x['content_cut']) if i != '']
re.findall(r'\d+',city_data)? ? ? 將字符串中數字拿出來,返回字符串
正則匹配規則(數字)
8,join用法,連接字符串
data ='-'.join(data)
9,assert
https://www.runoob.com/python3/python3-assert.html
10,next
next()?返回迭代器的下一個項目。
next() 函數要和生成迭代器的iter() 函數一起使用。
11,tqdm? ?顯示進度條
for index in tqdm(df.index):
11,string? 模塊
https://blog.csdn.net/kongsuhongbaby/article/details/83181768