Xiang Wang @ 2017-04-28 11:19:42
- 官网文档
od = OrderedDict() # 注意不能直接把一个dict传入进去, 因为这个dict是没有排序的 od = OrderedDict([('key', 'value'), ('key2', 'value2')]) od['1'] = 1 a.keys()
- 官方文档
- [参考代码]
dd = defaultdict(int) dd['w'] >>> 0 dd['w'] = 1 dd['w'] >>> 1 - [方法]
- setdefault
dd = defaultdict(int) dd.setdefault('w', 2) # dd['w'] = 2 if 'w' not in dd dd['w'] >>> 2 dd.setdefault('w', 4) >>> 2
- setdefault
- 如果要实现无限的循环
class MyDict(dict):
def __getitem__(self, key):
print("调用get")
if key not in self:
self[key] = MyDict()
return super(MyDict, self).__getitem__(key)
// 自定义不可变的类
Point = namedtuple("Point", ["x", "y"])
Point = namedtuple("Point", "x, y")
Point = namedtuple("Point", "x y")
p = Point(11, y=22)
p.x + p.y
x, y = p
- 官方文档
- pop和append左右的速度很快
a = deque('ghi') a.append('j') a.appendleft('f') a.pop() a.popleft()
这个是 Abstract Base Classes 可以用来确保这个Class无法被直接使用,而必须指定了特定的方法才能使用,利用的是abc.abstractmethod就能实现这样的效果
class A(Container):
pass
class B(A):
def __contains__(self, item):
return True
b = B() # OK
a = A() # TypeError: Can't instantiate abstract class A with abstract methods __contains__