>>> for c in itertools.chain('ABC', 'XYZ'): ... print(c) # 迭代效果:'A' 'B' 'C' 'X' 'Y' 'Z'
groupby()
groupby()把迭代器中相邻的重复元素挑出来放在一起:
1 2 3 4 5 6 7
>>> for key, group in itertools.groupby('AAABBBCCAAA'): ... print(key, list(group)) ... A ['A', 'A', 'A'] B ['B', 'B', 'B'] C ['C', 'C'] A ['A', 'A', 'A']
>>> for key, group in itertools.groupby('AaaBBbcCAAa', lambda c: c.upper()): ... print(key, list(group)) ... A ['A', 'a', 'a'] B ['B', 'B', 'b'] C ['c', 'C'] A ['A', 'A', 'a']
def pi(N): natuals = itertools.count(1, 2) ns = itertools.takewhile(lambda x: x <= 2*N-1, natuals) list_ns = [] fu = -1 for i in ns : fu = -fu list_ns.append(4*fu/i) # print(list_ns) sum = 0 for i in list_ns : sum = sum + i return sum