python学习笔记5-字典

# 字典(哈希映射、关联数组)
d0 =  {'a': 2, [0,1]:[1,2,3]}
# TypeError: unhashable type: 'list'
# 值可以是任意数据类型,但键不能是列表,可以是整数、浮点、字符串、元组
d1 = {'a': 2, ('b','c'):[1,2,3]}
d1
# {('b', 'c'): [1, 2, 3], 'a': 2} 

# 1.插入键值
d1['d'] = 2
d1
# {'d': 2, ('b', 'c'): [1, 2, 3], 'a': 2}
# 插入键值对无序
d1.update({'e': 4, 'f':6})
d1
# {'d': 2, 'e': 4, ('b', 'c'): [1, 2, 3], 'a': 2, 'f': 6}

# 2.查找键
'd' in d1
# True

# 3.修改键值
d1['d'] = 4
d1
# {'d': 4, 'e': 4, ('b', 'c'): [1, 2, 3], 'a': 2, 'f': 6}
d1[('b', 'c')][2] = 0
d1
# {'d': 4, 'e': 4, ('b', 'c'): [1, 2, 0], 'a': 2, 'f': 6}

# 4.删除键值
del d1['a']
d1
# {'d': 4, 'e': 4, ('b', 'c'): [1, 2, 0], 'f': 6}
L = d1.pop(('b','c'))
L
# [1, 2, 0]
d1
# {'d': 4, 'e': 4, 'f': 6}

# 5.键值迭代器方法
list(d1.keys())
# ['d', 'e', 'f']
list(d1.values())
# [4, 4, 6]
# keys和values的list的顺序是对应的
list(d1)
# ['d', 'e', 'f']
# 相当于list(d1.keys())

# 6.创建字典
# 6.1通过键值对创建字典
d2 = dict([('a',1),('b',2)])
d2
# {'a': 1, 'b': 2}
# 6.2通过参数指定创建字典(需要关键字全为字符串)
d3 = dict(a=2,b='c')
d3
# {'a': 2, 'b': 'c'}
d4 = dict(2='c',b=3)
# keyword can't be an expression
# 6.3通过zip函数将两个列表(可以是迭代器)映射成字典
d5 = dict(zip([1,2,3],['a','b','c']))
d5
# {1: 'a', 2: 'b', 3: 'c'}
# 如果两个列表长度不同,取较短列表的长度
d6 = dict(zip(range(3),reversed(range(4))))
d6
# {0: 3, 1: 2, 2: 1}
posted @ 2019-04-28 18:46  babysteps  阅读(115)  评论(0编辑  收藏  举报