BA12 python擴充套件內容

2022-07-09 12:24:09 字數 3432 閱讀 2637

python擴充套件內容:

!!!!!python的open(str,mode [,encoding='utf-8']) 協助中文解碼,否則可能會讀出亂碼

你可以使用 lambda 表示式建立匿名函式,即沒有名稱的函式。lambda 表示式非常適合快速建立在**中以後不會用到的函式。尤其對高階函式或將其他函式作為引數的函式來說,非常實用。

我們可以使用 lambda 表示式將以下函式

def multiply(x, y):

return x * y

簡寫為:

double = lambda x, y: x * y

關鍵字lambda表示這是乙個 lambda 表示式。

lambda之後是該匿名函式的乙個或多個引數(用英文逗號分隔),然後是乙個英文冒號:。和函式相似,lambda 表示式中的引數名稱是隨意的。

最後一部分是被評估並在該函式中返回的表示式,和你可能會在函式中看到的 return 語句很像。

如果可迭代物件太大,無法完整地儲存在記憶體中(例如處理大型檔案時),每次能夠使用一部分很有用。

實現乙個生成器函式chunker,接受乙個可迭代物件並每次生成指定大小的部分資料。

如下所示地呼叫該函式:

for chunk in chunker(range(25), 4):

print(list(chunk))

應該會輸出:

[0, 1, 2, 3]

[4, 5, 6, 7]

[8, 9, 10, 11]

[12, 13, 14, 15]

[16, 17, 18, 19]

[20, 21, 22, 23]

[24]

def chunker(iterable, size):

"""yield successive chunks from iterable of length size."""

for i in range(0, len(iterable), size):

yield iterable[i:i + size]

for chunk in chunker(range(25), 4):

print(list(chunk))

zipenumerate是實用的內建函式,可以在處理迴圈時用到。

zip返回乙個將多個可迭代物件組合成乙個元組序列的迭代器。每個元組都包含所有可迭代物件中該位置的元素。例如,

list(zip(['a', 'b', 'c'], [1, 2, 3]))將輸出[('a', 1), ('b', 2), ('c', 3)].

正如range()一樣,我們需要將其轉換為列表或使用迴圈進行遍歷以檢視其中的元素。

你可以如下所示地用for迴圈拆分每個元組。

letters = ['a', 'b', 'c']

nums = [1, 2, 3]

for letter, num in zip(letters, nums):

print("{}: {}".format(letter, num))

除了可以將兩個列表組合到一起之外,還可以使用星號拆分列表。

some_list = [('a', 1), ('b', 2), ('c', 3)]

letters, nums = zip(*some_list)

這樣可以建立正如之前看到的相同lettersnums列表。

enumerate是乙個會返回元組迭代器的內建函式,這些元組包含列表的索引和值。當你需要在迴圈中獲取可迭代物件的每個元素及其索引時,將經常用到該函式。

letters = ['a', 'b', 'c', 'd', 'e']

for i, letter in enumerate(letters):

print(i, letter)

這段**將輸出:

0 a

1 b2 c

3 d4 e

以下是如何在 python 中讀寫檔案的方式。

f = open('my_path/my_file.txt', 'r')

file_data = f.read()

f.close()

首先使用內建函式open開啟檔案。需要檔案路徑字串。open函式會返回檔案物件,它是乙個 python 物件,python 通過該物件與檔案本身互動。在此示例中,我們將此物件賦值給變數f

你可以在open函式中指定可選引數。引數之一是開啟檔案時採用的模式。在此示例中,我們使用r,即唯讀模式。這實際上是模式引數的預設值。

使用read訪問檔案物件的內容。該read方法會接受檔案中包含的文字並放入字串中。在此示例中,我們將該方法返回的字串賦值給變數file_data

當我們處理完檔案後,使用close方法釋放該檔案占用的系統資源。

f = open('my_path/my_file.txt', 'w')

f.write("hello there!")

f.close()

以寫入 ('w') 模式開啟檔案。如果檔案不存在,python 將為你建立乙個檔案。如果以寫入模式開啟現有檔案,該檔案中之前包含的所有內容將被刪除。如果你打算向現有檔案新增內容,但是不刪除其中的內容,可以使用附加 ('a') 模式,而不是寫入模式。

使用 write 方法向檔案中新增文字。

操作完畢後,關閉檔案。

python 提供了乙個特殊的語法,該語法會在你使用完檔案後自動關閉該檔案。

with open('my_path/my_file.txt', 'r') as f:

file_data = f.read()

with關鍵字使你能夠開啟檔案,對檔案執行操作,並在縮排**(在此示例中是讀取檔案)執行之後自動關閉檔案。現在,我們不需要呼叫 f.close() 了!你只能在此縮排塊中訪問檔案物件 f。

關於python中b a與b a 的區別

b a與b a 的區別 b a將兩者指向同乙個物件 而b a 會建立乙個新的與a完全相同的物件,但是與a並不指向同一物件。在計算機中,不同的物件即不同的記憶體位址。可理解為 b a將建立a與b兩個快捷方式並指向同一檔案 而b a 先將a指向的檔案複製乙份作為副本,然後建立乙個指向該副本的快捷方式b。...

python繪製BA無標度網路

檔名稱 a.py 作 者 孔雲 問題描述 問題分析 如下 import networkx as ne 匯入建網路模型包,命名ne import matplotlib.pyplot as mp 匯入科學繪圖包,命名mp ba scale free degree network graphy ba ne...

c寫python庫 c寫python模組擴充套件

結構 xorcrypt 0.2 setup.py xorcrypt2.c readme setup.py usr bin python from distutils.core import setup,extension version 0.2 macros module version s ver...