dict是我非常喜欢的一种数据类型,我甚至基于这种映射的概念发明了新的词组:KV编程论(后期有时间再说)。 dict在Python的代码中用途非常广泛,类似武术中的马步,好好练习,习以为常,能助你以后在代码编写过程中如鱼得水,风生水起。
废话少说,今天我们就来看看dict的基础练习与代码示例。
DE8UG的代码环境为:
- Windows10
- python3.7
概念
字典的基本创建格式:{键1: 值1,键2: 值2。。。},例如: {'jack': 4098, 'sjoerd': 4127} 或 {4098: 'jack', 4127: 'sjoerd'},大括号是必须的,里面的各种符号,逗号,引号,冒号等都是英文符号。
注意:键的内容不能重复。且可变类型的值不能作为键。因为键的位置是需要唯一的,需要用它去映射后面的值。 更专业的说法是键需要是可hashable的。对于hashable,在官方文档有解释:
hashable -- 可哈希 一个对象的哈希值如果在其生命周期内绝不改变,就被称为 可哈希 (它需要具有 hash() 方法),并可以同其他对象进行比较(它需要具有 eq() 方法)。可哈希对象必须具有相同的哈希值比较结果才会相同。 可哈希性使得对象能够作为字典键或集合成员使用,因为这些数据结构要在内部使用哈希值。 大多数 Python 中的不可变内置对象都是可哈希的;可变容器(例如列表或字典)都不可哈希;不可变容器(例如元组和 frozenset)仅当它们的元素均为可哈希时才是可哈希的。 用户定义类的实例对象默认是可哈希的。 它们在比较时一定不相同(除非是与自己比较),它们的哈希值的生成是基于它们的 id()。
除了使用{}创建字典,还可以用字典的类dict来生成新的字典对象。
dict类的构造形式有:
class dict(**kwarg)
class dict(mapping, **kwarg)
class dict(iterable, **kwarg)
于是,我们用{"one": 1, "two