# -*- coding:utf-8 -*-
# ******* 生成器 最初模版 幫助理解
def test():
yield 1 # yield 相當於 return
yield 2 # yield 返回乙個生成器記憶體位址
# 可以多次yield
g = test()
print(g)
print(next(g)) # 用next取值
print(next(g))
# ******** 三元表示式
a = 'a'
res = '正確' if a == 'a' else '錯誤'
print(res)
# ********* 列表解析式 幫助理解以下
a =
for i in range(10):
a.append(i)
print(a)
# * 在列表中直接for迴圈返回值
l = [i for i in range(10)]
print(l)
# * 三元表示式在列表迴圈
l = [i for i in range(10) if i >4]
print(l)
# ********* 生成器
a = (i for i in range(10)) # 小括號返回生成器物件 中括號返回列表
print(a)
print(next(a)) # 使用next取值
print(next(a))
# * 生成器不會占用太多記憶體,取乙個拿乙個
# * 列表會直接生成,放到記憶體中
# * 使用 map 函式生成器
l = [1, 2, 3, 4]
a = map(str, l) # 返回乙個生成器記憶體位址
print(next(a))
# * 使用 zip 函式
l1 = zip(l)
print(next(l1)) # 可用 next 取值
# * 使用 reduce 函式
from functools import reduce
q = [1, 2, 2, 2]
l2 = reduce(lambda x,y:x+y, q) # print(sum(q)) 作用相同 但是占用記憶體太多
print(l2) # print(sum(i for in range(100))) 生成器方式,占用記憶體少
列表解析與生成器
1 語法 返回值 for 元素 in 可迭代物件 if 條件 使用中括號,內部是for迴圈,if條件語句可選 返回乙個新列表 高階 expr for i in iterable for j in iterable2 等價於 ret for i initerable1 for j in iterabl...
Python 解析式 生成器
datetime模組 datetime物件 datetime物件 日期格式化 import datetime dt datetime.datetime.strptime 21 11 06 16 30 d m y h m print dt.strftime y m d h m s print form...
函式與生成器
一 函式屬性 函式可以在內部建立預設的屬性,還可以在外部通過句點屬性識別符號來動態建立該函式的屬性。def foo foo properly created doc string def bar pass foo.doc foo properly created doc string bar.doc...