python 基本語法

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

12,?統一轉換日期格式dateutil.parser.parse

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 官網 中文版本 好的網站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,436評論 0 5
  • Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感覺還不錯。我覺得Linux相比windows...
    我想起個好名字閱讀 318評論 0 1
  • 系統信息arch 顯示機器的處理器架構(1)uname -m 顯示機器的處理器架構(2)uname -r 顯示正在...
    sky_yang閱讀 290評論 0 0
  • 文件讀寫文件讀寫部分,python有一個基本的內置文件讀取函數openopen(filename, mode)其中...
    zhile_doing閱讀 387評論 0 0
  • 文/故若初 “萬物靜觀皆自得,四時佳興與人同”是汪曾祺所欣賞的境界。“隨遇而安”是他的生活態度。他是現當代小說家、...
    故若初閱讀 1,115評論 5 8