Python dict - zhongjiajie/zhongjiajie.github.com GitHub Wiki

Python-dict

序列是通过数据序号获得元素,dict是通过key获得元素.其中key可以是任何类型的不可变对象(string, number永远可以作为key,tuple如果只含有strings numbers tuples作为元素也可以作为key,但是如果含有可变对象就不能作为key),list作为可变对象不能作为key,因为他可以通过索引切片改变元素的值

应该把dict看作一个键值对,并且是key唯一的键值对.

  • 最基本操作是使用键值储存和读取元素
  • 可以通过del d['key']删除指定的key:value对
  • 如果对已经存在的key赋值会用新值替换旧值
  • 通过'key' in dict判断key在不在字典里面(或者not in))
  • 通过list(dict)查看字典的所有key
  • 通过sorted(dict)查看字典的所有key,且通过指定的规则排序

创建

  • 通过大括号: d = {'one': 1, 'two': 2}
  • 通过dict+赋值表达式方法创建: dict(one=1, two=2),注意此时string不用加引号(值适合key全部是string的时候)
  • 通过dict+有键值对的序列创建: dict([('one', 1), ('two', 2)]),此时的string要加上引号
  • d = dict.fromkeys('k1', 'k2', 'k3'): 根据key创建只有

转化成kv对

d = {
    "key1": "val1",
    "key2": "val2"
}
pair = ["{0}={1}".format(k, v) for k, v in d.items()]
"/".join(pair)

过滤已有字典部分值

# 用字典解析
# py2
res = dict((k,v) for k,v in kwargs.iteritems() if v is not None)
# py3
res = {k:v for k,v in kwargs.items() if v is not None}
⚠️ **GitHub.com Fallback** ⚠️