高阶函数编程补充
zip
- 把两个可迭代的内容生成一个可迭代的tuple元素类型组成的内容
l1 = [1,2,3,4,5,6,7]
s1 = ['a','b','c','d','e','f','g']
z = zip(l1,s1)
print(type(z))
for i in z:
print(i)
enumerate
- 跟zip功能比较像
- 对可迭代对象里的每一个元素,配置上一个索引,然后索引和内容构成一个tuple类型
l1 = [12,43,543,665,654,24,233,43]
em = enumerate(l1)
l2 = [i for i in em]
print(l2)
em2 = enumerate(l1,start=20)
l3 = [i for i in em2]
print(l3)
collections模块
namedtuple
import collections
Point = collections.namedtuple("Point",['x','y'])
p = Point(11,22)
print(p.y)
print(p[0])
Circle = collections.namedtuple("Circle",['x','y','r'])
c = Circle(100,100,50);
print(c)
print(type(c))
isinstance(c,tuple)
dequeue
from collections import deque
q = deque(['a','b','c'])
print(q)
q.append('d')
print(q)
q.appendleft('x')
print(q)
defaultdict
d1 = {"one":1,"two":2,"three":3}
print(d1)
print(d1['one'])
from collections import defaultdict
func = lambda: "yes,I am boy"
d2 = defaultdict(func)
d2["one"] = 1
d2["two"] = 2
print(d2['one'])
print(d2['four'])
Counter
from collections import Counter
c = Counter("dsahdsjadhjasdjksa")
print(c)
s = ["wtt","love","Love","whj"]
c = Counter(s)
print(c)