zoukankan      html  css  js  c++  java
  • collection系列用法-defaultdict()

    defaultdict()

    定义以及作用

    返回一个和dictionary类似的对象,和dict不同主要体现在2个方面:

    • 可以指定key对应的value的类型。
    • 不必为默认值担心,换句话说就是不必担心有key没有value这回事。总会有默认的value.
     1 from collections import defaultdict
     2 s=[('yellow',1),('blue',2),('yellow',3),('blue',4),('red',5)]
     3 d=defaultdict(list)
     4 for k,v in s:
     5     d[k].append(v)
     6     print list(d.items())
     7 d_2 = {}
     8 for k, v in s:
     9     d_2.setdefault(k, []).append(v)
    10     print list(d_2.items())
    11 
    12 d_3 = {}
    13 for k, v in s:
    14     d_3[k].append(v)
    15     print d_3.items()

    d = defaultdict(list),该语句创建一个defaultdict类型(你可以想象为dict类型),value的类型是你自己指定的类型,实例是list。

    d_3是普通的dict,key值必须是唯一,当key重复的时候出现异常。defaultdict是可以直接就进行d[k]的操作,即使d此时还是一个空的字典。

    实际过程就是示例里d_2的处理过程。

    小提示:

    Python 字典(Dictionary) setdefault() 函数和get()方法类似, 如果键不已经存在于字典中,将会添加键并将值设为默认值。

    语法

    setdefault()方法语法:

    dict.setdefault(key, default=None)

    参数

    • key -- 查找的键值。
    • default -- 键不存在时,设置的默认键值。

    返回值

    该方法没有任何返回值。

    实例

    以下实例展示了 setdefault()函数的使用方法:

    #!/usr/bin/python
    
    dict = {'Name': 'Zara', 'Age': 7}
    
    print "Value : %s" %  dict.setdefault('Age', None)
    print "Value : %s" %  dict.setdefault('Sex', None)

    以上实例输出结果为:

    Value : 7
    Value : None
  • 相关阅读:
    Python处理Excel文件
    WebSocket使用中Stomp Client连接报ERROR CODE 200的解决办法
    深入理解Java虚拟机——读书笔记
    主要排序算法的Java实现
    LeetCode 67 Add Binary
    LeetCode 206 单链表翻转
    POJ 2388
    POJ 1207 3N+1 Problem
    POJ 1008 Maya Calendar
    关于指针的一些基本常识
  • 原文地址:https://www.cnblogs.com/chushiyaoyue/p/5329175.html
Copyright © 2011-2022 走看看