python笔记-映射类型(字典)

一、字典

映射 对象会将 不可变的值 映射到任意对象。 映射属于可变对象。 目前仅有一种标准映射类型 字典

  1. 字典可以通过将以逗号分隔的 键: 值 对列表包含于花括号之内来创建
    • 例如: {'jack': 4098, 'sjoerd': 4127} 或 {4098: 'jack', 4127: 'sjoerd'}
  2. 通过dict()来构造映射对象
    • dict(one=1, two=2, three=3)
    • dict(zip(['one', 'two', 'three'], [1, 2, 3]))
    • dict([('two', 2), ('one', 1), ('three', 3)])
    • dict({'three': 3, 'one': 1, 'two': 2})
>>> d = {"name": "dyp", "age": 21}
>>> d
{'name': 'dyp', 'age': 21}
>>> d = dict(name="dyp", age=21)
>>> d
{'name': 'dyp', 'age': 21}
>>> d = dict([("name", "dyp"),("age", 21)])
>>> d
{'name': 'dyp', 'age': 21}

字典的 几乎可以是任何值

  • 可变对象 的值,即包含列表、字典或其他可变类型的值(此类对象基于值而非对象标识进行比较)不可用作键
  • 数字类型用作键时遵循数字比较的一般规则:如果两个数值相等 (例如 1 和 1.0) 则两者可以被用来索引同一字典条目

二、字典支持的操作

  1. list(dict): 返回列表
>>> d = {'name': 'dyp', 'age': 21}
>>> list(d)
['name', 'age']
  1. len(dict): 返回字典 d 中的项数。
  2. dict[key]: 返回 dict 中以 key 为键的value。 如果映射中不存在 key 则会引发 KeyError。
>>> d = {'name': 'dyp', 'age': 21}
>>> d["name"]
'dyp'
  1. dict[key] = value: 将 dict[key] 设为 value
>>> d = {'name': 'dyp', 'age': 21}
>>> d["name"] = "dyy"
>>> d
{'name': 'dyy', 'age': 21}
  1. del dict[key]: 将 dict[key]d 中移除。 如果映射中不存在 key 则会引发 KeyError
>>> d = {'name': 'dyy', 'age': 21}
>>> del d["name"]
>>> d
{'age': 21}
  1. key in d: 如果 d 中存在键 key 则返回 True,否则返回 False。
  2. key not in d: 等价于 not key in d。
  3. dict.clear(): 移除字典中的所有元素。
  4. dict.copy(): 返回原字典的浅拷贝。
>>> d = {"name": "dyp", "age": 21}
>>> d.copy()
{'name': 'dyp', 'age': 21}
  1. dict.get(key[, default]): 如果 key 存在于字典中则返回 key 的值,否则返回 default。 如果 default 未给出则默认为 None,因而此方法绝不会引发 KeyError
>>> d = {'name': 'dyp', 'age': 21}
>>> d.get("age", 12)
21
  1. dict.items(): 返回由字典项 (键, 值) 对 组成的一个新视图
>>> d = {'name': 'dyp', 'age': 21}
>>> d.items()
dict_items([('name', 'dyp'), ('age', 21)])
  1. dict.keys(): 返回由字典键组成的一个新视图
>>> d = {'name': 'dyp', 'age': 21}
>>> d.keys()
dict_keys(['name', 'age'])
  1. dict.pop(key[, default]): 如果 key 存在于字典中则将其移除并返回其值,否则返回 default。 如果 default 未给出且 key 不存在于字典中,则会引发 KeyError
>>> d = {'name': 'dyp', 'age': 21}
>>> d.pop("name")
'dyp'
  1. dict.popitem(): 从字典中移除并返回一个 (键, 值) 对。 键值对会按 LIFO 的顺序被返回, 空字典会报错
>>> d = {'age': 21, 'name': 'dyp'}
>>> d.popitem()
('name', 'dyp')
  1. reversed(dict): 返回一个逆序获取字典键的迭代器
  2. dict.setdefault(key[, default]): 如果字典存在键 key ,返回它的值。如果不存在,插入值为 default 的键 key ,并返回 default 。 default 默认为 None
>>> d = {'age': 21, 'name': 'dyp'}
>>> d.setdefault("name", "dyy")
'dyp'
  1. dict.update([other]): 使用来自 other键:值对更新字典,覆盖原有的键
>>> d = {'age': 21, 'name': 'dyp'}
>>> d.update({"name": "dyy", "age": 22})
>>> d
{'age': 22, 'name': 'dyy'}
  1. dict.values(): 返回由字典值组成的一个新视图
>>> d = {'age': 22, 'name': 'dyy'}
>>> d.values()
dict_values([22, 'dyy'])
原文地址:https://www.cnblogs.com/duyupeng/p/13067624.html