• for 循环、dict.setdefault(key,[]).append(value)、result=defaultdict(list)


    运用for 循环处理各种数据

    In [24]:
    words=['apple','pare','banana','and','peach']
     
     
    In [57]:
    byletter={}
    for word in words:
        letter=word[0]
        if letter  in byletter:
            byletter[letter].append(word)
        else:
            byletter[letter]=[word]
     
    In [58]:
    byletter
     
     
    Out[58]:
    {'a': ['apple', 'and'], 'p': ['pare', 'peach'], 'b': ['banana']}
     

    dict.setdefault(key,[]).append(value)

    setdefault是字典对象的一个实例方法,接收两个参数,用法和字典的get方法类似,但是比 get 更强大。 它可以为给字典的key设定一个默认值(如果key不在字典中的时候) get 方法设置的默认值不会改变原字典, 而setdefault设置的默认值会改变原字典的值。

    In [41]:
    by_letters={}
    for word in words:
        letter=word[0]
        by_letters.setdefault(letter,[]).append(word)
     
     
    In [43]:
     by_letters
     
     
    Out[43]:
    {'a': ['apple', 'and'], 'p': ['pare', 'peach'], 'b': ['banana']}
    In [59]:
     
    data=[('p',1),('p',2),('p',3),('h',4),('h',5),('h',6)]
     
    result=defaultdict(list)

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

    In [66]:
     from collections import defaultdict
    results=defaultdict(list)
    data=[('p',1),('p',2),('p',3),('h',4),('h',5),('h',6)]
    for (key,value) in data:
        results[key].append(value)
     
     
    In [67]:
    results
     
     
    Out[67]:
    defaultdict(list, {'p': [1, 2, 3], 'h': [4, 5, 6]})
  • 相关阅读:
    Jzoj2682 最长双回文串
    Jzoj2682 最长双回文串
    【hdu3853】Loops
    【tyvj1015】【caioj1060】公路乘车
    【luogu1064】金明的预算方案
    【bzoj1260】【CQOI2007】涂色paint
    【UVa1629】Cake slicing
    【NYOJ746】整数划分(四)
    【NYOJ 15】括号匹配2
    【poj2955】Brackets
  • 原文地址:https://www.cnblogs.com/liyun1/p/11248123.html
Copyright © 2020-2023  润新知