collection#

常用集合类。

#

AttrDict

子类 dict,并进一步允许属性式访问字典项。

函数#

make_immutable(value)

first(seq[, key, default, apply])

给出满足 key 测试的第一个值。

last(seq[, key, default, apply])

make_immutable(value)#
class AttrDict(*args, **kwargs)#

基类: dict

子类 dict,并进一步允许属性式访问字典项。

示例

>>> d = AttrDict({'a': 1})
>>> d.a, d['a'], d.get('a')
(1, 1, 1)
>>> d.b = 2
>>> d.b, d['b']
(2, 2)

初始化 self。请参阅 help(type(self)) 以获得准确的签名。

first(seq, key=bool, default=None, apply=lambda x: ...)#

给出满足 key 测试的第一个值。

参数:
  • seq (iterable)

  • key (callable) -- iterable 中每个元素的测试

  • default -- 当所有元素都未通过测试时返回

  • apply (callable) -- 在返回之前应用于元素,但不应用于默认值

返回: seq 中通过 key 的第一个元素,使用可选的 apply 进行突变

示例

>>> first([0, False, None, [], (), 42])
42
>>> first([0, False, None, [], ()]) is None
True
>>> first([0, False, None, [], ()], default='ohai')
'ohai'
>>> import re
>>> m = first(re.match(regex, 'abc') for regex in ['b.*', 'a(.*)'])
>>> m.group(1)
'bc'

可选的 key 参数指定一个单参数谓词函数,类似于用于 filter() 的函数。key 参数(如果提供)必须采用关键字形式。例如: >>> first([1, 1, 3, 4, 5], key=lambda x: x % 2 == 0) 4

last(seq, key=bool, default=None, apply=lambda x: ...)#