zoukankan      html  css  js  c++  java
  • Dictionaries and lists

    Lists can appear as values in a dictionary. For example, if you were given a dictionary that maps from letters to frequencies, you might want to invert it; that is, create a dictionary that maps from frequencies to letters. Since there might be several letters with the same frequency, each value in the inverted dictionary should be a list of letters.

                           

    Each time through the loop, key gets a key from d and val gets the corresponding value. If val is not in dic, that means we haven’t seen it before, so we create a new item and initialize it with a singleton (a list that contains a single element). Otherwise we have seen this value before, so we append the corresponding key to the list.

    Lists can be values in a dictionary, but they cannot be keys.


    A dictionary is implemented using a hashtable and that means that the keys have to be hashable.

    A hash is a function that takes a value (of any kind) and returns an integer. Dictionaries use these integers, called hash values, to store and look up key-value pairs. This system works fine if the keys are immutable. But if the keyws are mutable, like lists, bad things happen. For example, when you create a key-value pair, Python hashed the key and stores it in the corresponding location. If you modify the key and then hash it again, it would go to a different location. In that case you might have two entries for the same key, or you might not be able to find a key. Either way, the dictionary wouldn’t work correctly. That’s why the keys have to be hashable, and why mutable types like lists aren’t. the simplest way to get around this location is to use tuples. Since dictionaries are mutable, they can’t be used as keys, but they can be used as values.

    setdefault(key[, default])

    If key is in the dictionary, return its value. If not, insert key with a value of default and return default. default defaults to None.

     

     

    from Thinking in Python

     

  • 相关阅读:
    MYSQL中数据类型介绍
    怎么评估软件上线标准
    文件安全复制之 FastCopy
    强烈推荐美文之《从此刻起,我要》
    浅谈软件测试与墨菲定律
    夜神模拟器--安卓模拟神器
    RoadMap:如何创建产品路线图
    利用Python爬虫刷店铺微博等访问量最简单有效教程
    MySQL 数据库中删除重复数据的方法
    如何测试一个杯子
  • 原文地址:https://www.cnblogs.com/ryansunyu/p/3845222.html
Copyright © 2011-2022 走看看