zoukankan      html  css  js  c++  java
  • Python 学习笔记(2)字典默认值和集合的操作

    一、设置字典默认值

    #字典的 get方法可以根据获取

    value = some_dict.get(key, default_value

    例子如下:

    b_dict={"a":1,"b":3,"c":5}
    myv=b_dict.get("a",)
    print(myv) #结果是 1

    如果key不存在,则返回None

    设置默认值,setdefault 函数

    关于设定值,常见的情况是在字典的值是属于其它集合,如列表。例如,你可以通过首字母,将一个列表中的单词分类:

    常规方法

    [123]: words = ['apple', 'bat', 'bar', 'atom', 'book']
    In [124]: by_letter = {}
    In [125]: for word in words:
    .....: letter = word[0]
    .....: if letter not in by_letter:
    .....: by_letter[letter] = [word]
    .....: else:
    .....: by_letter[letter].append(word)
    .....:
    In [126]: by_letter
    Out[126]: {'a': ['apple', 'atom'], 'b': ['bat', 'bar', 'book']}
     
    使用setdefault,for循环部分进行如下修改:
      for word in words:
        letter = word[0]
        by_letter.setdefault(letter, []).append(word)
     
     collections模块有一个很有用的类,defaultdict,它可以进一步简化上面。传递类型或函数以生成每个位置的默认值:

      from collections import defaultdict
      words=["chris","cba","daniel","daniel.zhao"]
      by_letter = defaultdict(list) #默认字典列表?
      for word in words:
      by_letter[word[0]].append(word)
      print(by_letter.get("a"))

      out:['chris', 'cba']

    二、集合

    可以理解为,只有key没有value的字典

    a={1,2,3,4,5,6,7,8}

    或者set([1,2,2,4,5,6,7,7])

    out:{1,2,4,5,6,7}

    集合常用方法如下:

    所有逻辑集合操作都有另外的原地实现方法,可以直接用结果替代集合的内容。对于大的集合,这么做效率更高:

    In [141]: c = a.copy()
    In [142]: c |= b
    In [143]: c
    Out[143]: {1, 2, 3, 4, 5, 6, 7, 8}
    In [144]: d = a.copy()
    In [145]: d &= b
    In [146]: d
    Out[146]: {3, 4, 5}
     
  • 相关阅读:
    Python界面常用GUI包
    ATSC/DVB/ISDB三大标准比较
    【MPEG】DVB / ATSC / ISDB区别
    Python判断字符串是否为字母或者数字
    MApp_ZUI_CTL_MarqueeTextWinProc字串滚动
    PWM原理及其在电源中的应用
    按键板的原理与实现 扩展GPIO
    按键板的原理与实现----ADC
    使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比
    SQL Server备份还原数据库中的小把戏
  • 原文地址:https://www.cnblogs.com/daniel-niu/p/10831647.html
Copyright © 2011-2022 走看看