5、Dict

作者: 代码充电宝 | 来源:发表于2019-04-26 08:56 被阅读7次
(1)dict键值对
  • 花括号 {} 表示这是一个dict,然后按照 key: value, 写出来即可。最后一个 key: value 的逗号可以省略
d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}
len(d)  #len()可以计算任何集合的大小
  • key 的元素必须不可变
    • Python的基本类型如字符串、整数、浮点数、tuple都是不可变的,都可以作为 key
    • list是可变的,就不能作为 key
{
    '123': [1, 2, 3], # key 是 str,value是list
    123: '123',  # key 是 int,value 是 str
    ('a', 'b'): True  # key 是 tuple,并且tuple的每个元素都是不可变对象,value是 boolean
}
  • dict内部是无序的,不能用dict存储有序的集合
  • key不能重复,重复会被覆盖
d = {
    'Adam': 85,
    'Adam': 95,
    'Bart': 59
}
print(d)  # {'Adam': 95, 'Bart': 59}
(2)访问dict
  • 简单地使用 d[key] 的形式来查找对应的 value,这和 list 很像,不同之处是,list 必须使用索引返回对应的元素,而dict使用key:
d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}
>>> print d['Adam']
95
>>> print d['Paul']
Traceback (most recent call last):
  File "index.py", line 11, in <module>
    print d['Paul']
KeyError: 'Paul'
  • 避免keyError
    • 先判断key是否存在
    • 使用dict本身提供的一个 get 方法,在Key不存在的时候,返回None
if 'Paul' in d:
    print d['Paul']
>>> print d.get('Bart')
59
>>> print d.get('Paul')
None
(3)dict和list区别
  • dict特点(空间换时间)
    • 查找和插入的速度极快,不会随着key的增加而变慢
    • 需要占用大量的内存,内存浪费多。
  • list特点
    • 查找和插入的时间随着元素的增加而增加
    • 占用空间小,浪费内存很少
(4)更新dict
  • 如果 key 已经存在,则赋值会用新的 value 替换掉原来的 value
d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}
>>> d['Paul'] = 72
>>> print d
{'Lisa': 85, 'Paul': 72, 'Adam': 95, 'Bart': 59}
>>> d['Bart'] = 60
>>> print d
{'Lisa': 85, 'Paul': 72, 'Adam': 95, 'Bart': 60}
(5)遍历dict
  • 遍历key
d= {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}
for key in d:
    print key + ':', d[key]

相关文章

网友评论

    本文标题:5、Dict

    本文链接:https://www.haomeiwen.com/subject/ppbxnqtx.html