Python 进阶知识点

filter 函数

filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。

filter(function, iterable)

参数:

function -- 判断函数,返回布尔值。

iterable -- 可迭代对象。

a = [ "12a,","234","dgb"]
b = list(filter(str.isdigit,a))
# 输出
234

itertools 模块

import itertools as its

# 产生ABCD的全排列
a = its.permutations('abcd')
for item in a:
      print(type(item),item)

# 产生ABCDE的五选三组合
b = its.combinations('ABCDE', 3)

# 产生ABCD和123的笛卡尔积
c = its.product('ABCD', '123')

# 产生 `A / B / C / A / B` 的顺序无限循环序列
d = its.cycle(('A', 'B', 'C'))
count = 0
for item in d:
      print(type(item),item)
      count += 1
      if count>10:
            break

collections 模块

namedtuple

namedtuple是一个函数,它用来创建一个自定义的tuple对象,并且规定了tuple元素的个数,并可以用属性而不是索引来引用tuple的某个元素。

from collections import namedtuple

Point = namedtuple('Point',['x','y','z'])

p = Point(1,2,3)

print(p.x)

deque

deque除了实现list的append()和pop()外,还支持appendleft()和popleft(),这样就可以非常高效地往头部添加或删除元素。

from collections import deque
a = deque([1,2,3,4])
print(a)
print(a.pop())
print(a.popleft())
a.append(1)
a.appendleft(4)
print(a)

defaultdict

除了在Key不存在时返回默认值,defaultdict的其他行为跟dict是完全一样的。

from collections import defaultdict
d = defaultdict(lambda:'n/a')
d['a'] = 1
print(d['a'])
print(d['b'])

posted @ 2020-07-06 17:11  林震宇  阅读(321)  评论(0编辑  收藏  举报