zoukankan      html  css  js  c++  java
  • Python之列表转字典:setdefault、defaultdict、fromkeys

    setdefault

    result = {}
    data = [("p", 1), ("p", 2), ("p", 3),
            ("h", 1), ("h", 2), ("h", 3)]
    for (key, value) in data:
        result.setdefault(key, []).append(value)
    
    
    print(result)
    # {'p': [1, 2, 3], 'h': [1, 2, 3]}

    defaultdict

    defaultdict是属于collections 模块下的一个工厂函数,用于构建字典对象,接收一个函数(可调用)对象为作为参数。参数返回的类型是什么,key对应value就是什么类型。

    from collections import defaultdict
    result = defaultdict(list)
    data = [("p", 1), ("p", 2), ("p", 3),
            ("h", 1), ("h", 2), ("h", 3)]
    
    for (key, value) in data:
        result[key].append(value)
    print(result)
    for k,v in result.items():
        print(k,v)
    """
    defaultdict(<class 'list'>, {'p': [1, 2, 3], 'h': [1, 2, 3]})
    p [1, 2, 3]
    h [1, 2, 3]
    """

    setdefault 的作用是:

    1. 如果 key 存在于字典中,那么直接返回对应的值,等效于 get 方法

    2. 如果 key 不存在字典中,则会用 setdefault 中的第二个参数作为该 key 的值,再返回该值。

    fromkeys

    keys = {'a', 'e', 'i', 'o', 'u' }
    value = []
    d = dict.fromkeys(keys, value)
    print(d)
    # {'i': [], 'u': [], 'o': [], 'a': [], 'e': []}
  • 相关阅读:
    Servlet Filter过滤器执行顺序
    eclipse乱码问题
    如何查看servlet&jsp版本?
    Unity的shader学习2
    Unity的shader学习1
    后缀数组专题与代码模板
    哈希表/散列表 指针版模版
    图的连通性专题及模板
    一般图最大匹配--带花树
    7-15至7-17训练赛回顾
  • 原文地址:https://www.cnblogs.com/zzy-9318/p/10180486.html
Copyright © 2011-2022 走看看