博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 默认字典
阅读量:6076 次
发布时间:2019-06-20

本文共 5974 字,大约阅读时间需要 19 分钟。

hot3.png

3、默认字典(defaultdict) 有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。即: {'k1': 大于66 , 'k2': 小于66}values = [11, 22, 33,44,55,66,77,88,99,90]my_dict = {}for value in  values:    if value>66:        if my_dict.has_key('k1'):            my_dict['k1'].append(value)        else:            my_dict['k1'] = [value]    else:        if my_dict.has_key('k2'):            my_dict['k2'].append(value)        else:            my_dict['k2'] = [value]原生字典解决方法from collections import defaultdictvalues = [11, 22, 33,44,55,66,77,88,99,90]my_dict = defaultdict(list)for value in  values:    if value>66:        my_dict['k1'].append(value)    else:        my_dict['k2'].append(value)defaultdict字典解决方法defaultdict是对字典的类型的补充,他默认给字典的值设置了一个类型class defaultdict(dict):    """    defaultdict(default_factory[, ...]) --> dict with default factory        The default factory is called without arguments to produce    a new value when a key is not present, in __getitem__ only.    A defaultdict compares equal to a dict with the same items.    All remaining arguments are treated the same as if they were    passed to the dict constructor, including keyword arguments.    """    def copy(self): # real signature unknown; restored from __doc__        """ D.copy() -> a shallow copy of D. """        pass    def __copy__(self, *args, **kwargs): # real signature unknown        """ D.copy() -> a shallow copy of D. """        pass    def __getattribute__(self, name): # real signature unknown; restored from __doc__        """ x.__getattribute__('name') <==> x.name """        pass    def __init__(self, default_factory=None, **kwargs): # known case of _collections.defaultdict.__init__        """        defaultdict(default_factory[, ...]) --> dict with default factory                The default factory is called without arguments to produce        a new value when a key is not present, in __getitem__ only.        A defaultdict compares equal to a dict with the same items.        All remaining arguments are treated the same as if they were        passed to the dict constructor, including keyword arguments.                # (copied from class doc)        """        pass    def __missing__(self, key): # real signature unknown; restored from __doc__        """        __missing__(key) # Called by __getitem__ for missing key; pseudo-code:          if self.default_factory is None: raise KeyError((key,))          self[key] = value = self.default_factory()          return value        """        pass    def __reduce__(self, *args, **kwargs): # real signature unknown        """ Return state information for pickling. """        pass    def __repr__(self): # real signature unknown; restored from __doc__        """ x.__repr__() <==> repr(x) """        pass    default_factory = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default    """Factory for default value called by __missing__()."""defaultdict

4、可命名元组(namedtuple) 根据nametuple可以创建一个包含tuple所有功能以及其他功能的类型。import collections Mytuple = collections.namedtuple('Mytuple',['x', 'y', 'z'])class Mytuple(__builtin__.tuple) |  Mytuple(x, y) |   |  Method resolution order: |      Mytuple |      __builtin__.tuple |      __builtin__.object |   |  Methods defined here: |   |  __getnewargs__(self) |      Return self as a plain tuple.  Used by copy and pickle. |   |  __getstate__(self) |      Exclude the OrderedDict from pickling |   |  __repr__(self) |      Return a nicely formatted representation string |   |  _asdict(self) |      Return a new OrderedDict which maps field names to their values |   |  _replace(_self, **kwds) |      Return a new Mytuple object replacing specified fields with new values |   |  ---------------------------------------------------------------------- |  Class methods defined here: |   |  _make(cls, iterable, new=
, len=
) from __builtin__.type |      Make a new Mytuple object from a sequence or iterable |   |  ---------------------------------------------------------------------- |  Static methods defined here: |   |  __new__(_cls, x, y) |      Create new instance of Mytuple(x, y) |   |  ---------------------------------------------------------------------- |  Data descriptors defined here: |   |  __dict__ |      Return a new OrderedDict which maps field names to their values |   |  x |      Alias for field number 0 |   |  y |      Alias for field number 1 |   |  ---------------------------------------------------------------------- |  Data and other attributes defined here: |   |  _fields = ('x', 'y') |   |  ---------------------------------------------------------------------- |  Methods inherited from __builtin__.tuple: |   |  __add__(...) |      x.__add__(y) <==> x+y |   |  __contains__(...) |      x.__contains__(y) <==> y in x |   |  __eq__(...) |      x.__eq__(y) <==> x==y |   |  __ge__(...) |      x.__ge__(y) <==> x>=y |   |  __getattribute__(...) |      x.__getattribute__('name') <==> x.name |   |  __getitem__(...) |      x.__getitem__(y) <==> x[y] |   |  __getslice__(...) |      x.__getslice__(i, j) <==> x[i:j] |       |      Use of negative indices is not supported. |   |  __gt__(...) |      x.__gt__(y) <==> x>y |   |  __hash__(...) |      x.__hash__() <==> hash(x) |   |  __iter__(...) |      x.__iter__() <==> iter(x) |   |  __le__(...) |      x.__le__(y) <==> x<=y |   |  __len__(...) |      x.__len__() <==> len(x) |   |  __lt__(...) |      x.__lt__(y) <==> x
<==> x*n |   |  __ne__(...) |      x.__ne__(y) <==> x!=y |   |  __rmul__(...) |      x.__rmul__(n) <==> n*x |   |  __sizeof__(...) |      T.__sizeof__() -- size of T in memory, in bytes |   |  count(...) |      T.count(value) -> integer -- return number of occurrences of value |   |  index(...) |      T.index(value, [start, [stop]]) -> integer -- return first index of value. |      Raises ValueError if the value is not present.MytupleMytuple

转载于:https://my.oschina.net/eddylinux/blog/526736

你可能感兴趣的文章
数组扩展方法之求和
查看>>
astah-professional-7_2_0安装
查看>>
函数是对象-有属性有方法
查看>>
uva 10107 - What is the Median?
查看>>
Linux下基本栈溢出攻击【转】
查看>>
c# 连等算式都在做什么
查看>>
使用c:forEach 控制5个换行
查看>>
java web轻量级开发面试教程摘录,java web面试技巧汇总,如何准备Spring MVC方面的面试...
查看>>
使用ansible工具部署ceph
查看>>
linux系列博文---->深入理解linux启动运行原理(一)
查看>>
Android反编译(一) 之反编译JAVA源码
查看>>
结合当前公司发展情况,技术团队情况,设计一个适合的技术团队绩效考核机制...
查看>>
python-45: opener 的使用
查看>>
cad图纸转换完成的pdf格式模糊应该如何操作?
查看>>
Struts2与Struts1区别
查看>>
网站内容禁止复制解决办法
查看>>
Qt多线程
查看>>
我的友情链接
查看>>
想说一点东西。。。。
查看>>
css知多少(8)——float上篇
查看>>