python入门 之 字典(六)
注:
环境: window7 python 2.7 Visual Code
简介:
字典是一种可变的容器模型,由 key :value 键值对构成,键值之间使用(:)分割;每对之间用逗号(,)分隔。数据用 { } 表示:
_map = { 'score':1, 'name':'Wang', 'language':'China', 'age': 20, }
字典数据是没有顺序的,因此我们不可以使用列表中的切片。虽然如此,但是我们可以通过任意 key 获取,修改,添加 value。比如:
_map = { 'score':1, 'age': 20, } # 获取元素 print(_map['score']) # 1 # 修改元素 _map['score'] = 100 print(_map) # {'age': 20, 'score': 100} # 添加元素,创建一个新的key即可 _map['new'] = 'new' print(_map) # {'new': 'new', 'age': 20, 'score': 100} # 删除元素, 添加指定的key即可 del _map['new'] print(_map) # {'age': 20, 'score': 100}
注意:
# 若key重复出现,则会被覆盖 _map = { 'score':1, 'age': 20, 'score':100 } print(_map) # {'age': 20, 'score': 100}
遍历:
在字典遍历中,python提供了三个方法: keys() , values(), items() 它们分别可获取:键对,值对,键值对
# 为了节省篇幅,结果均未分行显示 _map = { 'score':1, 'age': 20, 'name': 'Python', } # 普通遍历, 仅会获取到key for i in _map: print(i) # 通过key获取value print(_map[i]) print('\n') # 仅获取key for key in _map.keys(): print(key) # age score name print('\n') # 仅获取value for value in _map.values(): print(value) # 20 1 Python print('\n') # 获取key,value,返回的item是包含key-value的元组 for item in _map.items(): print(item) # ('age', 20) ('score', 1) ('name', 'Python')
查找键值
_map = { 'score':1, 'age': 20, 'name': 'Python', } # 使用 in 查找某键是否在字典中 print('age' in _map) # True print('score' in _map.keys()) # True print('Score' in _map.keys()) # False # 使用 in 查找某值是否在字典中 print(1 in _map.values()) # True print('py' in _map.values()) # False # 使用get(key, default),它有两个参数: 1. 指定的键 2.若键不存在,则返回默认的default值 print(_map.get('score', 0)) # 1 键值存在,返回value print(_map.get('SCORE', 100)) # 100 键值不存在,返回default value
setdefault(key, default=None):
与get方法有相似之处,若无对应的key将获取默认值,但是后者会将key放到map中,并将default设置为value。比如:
_map = { 'score':1, 'age': 20, } # 字典中没有key,将key-value添加到了字典中 value = _map.setdefault('name', 'python') print(value) # python 返回的value值 print(_map) # {'age': 20, 'score': 1, 'name': 'python'} value = _map.setdefault('name', 'lua') print(value) # python 返回的value值,注意不是lua print(_map) # {'age': 20, 'score': 1, 'name': 'python'}
示例:
使用setdefault获取指定字符串中每个字符出现的次数:
import pprint _map = {} message = 'This is Python, stduy hard' for char in message: # 若key不存在,则key放置到map中,且value为0 _map.setdefault(char, 0) # 记录每个字符的出现次数 _map[char] += 1 pprint.pprint(_map) ''' {' ': 4, ',': 1, 'P': 1, 'T': 1, 'a': 1, 'd': 2, 'h': 3, 'i': 2, 'n': 1, 'o': 1, 'r': 1, 's': 3, 't': 2, 'u': 1, 'y': 2} '''

浙公网安备 33010602011771号