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}
 '''

 

posted @ 2018-12-31 17:02  Code~  阅读(185)  评论(0)    收藏  举报