讀書筆記 深入理解Python特性(六)

2021-09-27 07:47:21 字數 1807 閱讀 9473

>>> emails = 

>>> for name, email in emails.items():

... print(f' -> ')

'bob -> [email protected]'

'alice -> [email protected]'

# template 1

values =

for item in collection:

# -->

values = [expression for item in collection]

# template 2

values =

for item in collection:

if condition:

# -->

values = [expression

for item in collection

if condition]

# [::]是淺複製舉例

>>> a = [[1, 2], [3, 4]]

>>> b = a[::]

>>> a

[[1, 2], [3, 4]]

>>> b

[[1, 2], [3, 4]]

>>> a[0][0] = 10

>>> a

[[10, 2], [3, 4]]

>>> b

[[10, 2], [3, 4]]

可以看出b隨a變更,是因為淺複製只複製了元素的引用。

如下例所示:

class boundedrepeater:

def __init__(self, value, max_repeats):

self.value = value

self.max_repeats = max_repeats

self.count = 0

def __iter__(self):

return self

def __next__(self):

if self.count >= self.max_repeats:

raise stopiteration

self.count += 1

return self.value

# 相容python2

def next(self):

return self.__next__()

def bounded_repeater(value, max_repeats):

for i in range(max_repeats):

yield value

# 生成器函式

def generator():

for item in collection:

if condition:

yield expression

# 對應的生成器表示式

genexpr = (expression for item in collection if condition)

上述的bounded_repeater可以改寫如下:

bounded_repeater = ('hi' for i in range(3))
sum((x for x in range(10)))

# 可以簡寫成

sum(x for x in range(10))

《深入理解Python》讀書筆記

1 type函式返回任意物件的資料型別。type可以接收任何東西作為引數 整型 字串 列表 字典 元組 函式 類 模組 甚至型別物件,並返回它的資料型別。可以使用types模組中的常量來進行物件型別的比較。import mymodule import types type mymodule type...

《深入理解Python特性》讀書筆記

深入理解python特性 的讀書筆記 單前導下劃線 var 單末尾下劃線 var 雙前導下劃線 var 雙前導雙結尾下劃線var 單獨乙個下劃線 物件可以被當作函式使用,只要他實現了 call 方法 函式預設返回值為none,即所有函式都是有返回值的,不寫就是nonelambda x x 1表示就是...

讀書筆記 深入理解Python特性(一)

目錄 1.斷言 2.可維護性建議之逗號的放置 3.上下文管理器和with 4.下劃線 雙下劃線及其他 names alice bob dilbert 而不是names 一行定義,或者 names alice bob dilbert 始終堅持多行定義並且在末行放置逗號,這樣在git diff或者別人r...