Python 中的生成器、迭代器与推导式深入解析
在 Python 的编程世界里,生成器、迭代器以及各种推导式是强大且实用的工具。它们能帮助我们更高效地处理数据和实现复杂的逻辑。下面将深入探讨这些概念,并通过具体的代码示例来展示它们的用法。
自定义 zip 和 map 函数
在 Python 中, zip
和 map
是非常常用的内置函数。我们可以通过迭代工具来实现它们的类似功能。
# zip(seqs...) and 2.X map(None, seqs...) workalikes
def myzip(*seqs):
seqs = [list(S) for S in seqs]
res = []
while all(seqs):
res.append(tuple(S.pop(0) for S in seqs))
return res
def mymapPad(*seqs, pad=None):
seqs = [list(S) for S in seqs]
res = []
while any(seqs):
res.append(tuple((S.pop(0) if S else pad) for S in seqs))
return res
S1, S2 = 'abc', 'xyz123'
print(myzip(S1, S2))
print(mymapPad(S1, S2))
print(mymapPad(S1, S2, pad=99))