给大家补充几个高级函数
- zip
- 把两个可迭代内容生成一个可迭代的tuple元素类型组成的内容
l1 = [1,2,3,4]
l2 = [5,6,7,8,9]
l3 = zip(l1,l2)
for i in l3:
print(i)
(1, 5)
(2, 6)
(3, 7)
(4, 8)
enumerate
- 跟zip功能比较像
- 对可迭代对象里的每一个元素,配上一个索引,然后索引和内容构成tuple类型
l1 = [1,2,3,4,5]
l2 = enumerate(l1)
l3 = [i for i in l2]
print(l3)
[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5)]
l1 = [1,2,3,4,5]
l2 = enumerate(l1, start=100)
l3 = [i for i in l2]
print(l3)
[(100, 1), (101, 2), (102, 3), (103, 4), (104, 5)]
collections模块
import collections
Point = collections.namedtuple("Point", ['x','y'])
p = Point(11,22)
print(p.x)
print(p[0])
11
11
Circle = collections.namedtuple("Circle", ['x','y', 'r'])
C = Circle(100,20,30)
print(C)
Circle(x=100, y=20, r=30)
dequeue
from collections import deque
q = deque(['a','b','c'])
print(q)
q.append("d")
print(q)
q.appendleft("e")
print(q)
deque(['a', 'b', 'c'])
deque(['a', 'b', 'c', 'd'])
deque(['e', 'a', 'b', 'c', 'd'])
defaultdict
d1 = {"one":1,"second":2,"three":3}
print(d1['one'])
1
from collections import defaultdict
func = lambda : "lizi"
d2 = {"one":1,"second":2,"three":3}
d2 = defaultdict(func)
print(d2['four'])
lizi
counter
from collections import Counter
c = Counter("dgdgfbfdbfbvh h,x;';.[oep.[xkluruiy xdhkung ]]'")
print(c)
Counter({'d': 4, 'g': 3, 'f': 3, 'b': 3, 'h': 3, ' ': 3, 'x': 3, 'u': 3, ';': 2, "'": 2, '.': 2, '[': 2, 'k': 2, ']': 2, 'v': 1, ',': 1, 'o': 1, 'e': 1, 'p': 1, 'l': 1, 'r': 1, 'i': 1, 'y': 1, 'n': 1})
c = Counter("aa","ss","ww")
print(c)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-24-d89b309a3daa> in <module>()
----> 1 c = Counter("aa","ss","ww")
2 print(c)
H:\Anaconda\lib\collections\__init__.py in __init__(*args, **kwds)
531 self, *args = args
532 if len(args) > 1:
--> 533 raise TypeError('expected at most 1 arguments, got %d' % len(args))
534 super(Counter, self).__init__()
535 self.update(*args, **kwds)
TypeError: expected at most 1 arguments, got 3
s = ["aa","ss","ww"]
c = Counter(s)
print(c)
Counter({'aa': 1, 'ss': 1, 'ww': 1})
调试技术