Python—字典
# -*- coding: utf-8 -*-
"""
Created on Sun Jul 28 17:38:34 2019
@author: cenxi
"""
#字典是一种灵活的结构与列表类似,可随时修改
#创建一个空字典,{}表示空字典
#添加键-值对
literary_works={}
literary_works['type'] = 'novel'
literary_works['name'] = '平凡的世界'
print(literary_works)
#修改字典中的值
literary_works['name'] = '解忧杂货店'
print(literary_works)
#书中示例
#功能:对一个能够以不同速度移动的外星人的位置进行跟踪
alien_0={'x_position':0,'y_position':25,'speed':'medium'}
print(alien_0)
print('Original x-position: '+str(alien_0['x_position']))
#向右移动外星人
#根据当前外星人速度决定其移动距离
if alien_0['speed'] == 'slow':
x_increment = 1
elif alien_0['speed'] == 'medium':
x_increment = 2
else:
x_increment = 3
alien_0['x_position'] = alien_0['x_position'] + x_increment
print('New x-position: '+ str(alien_0['x_position']))
#删除字典内容,使用del语句需指定字典名和键名
del alien_0['speed']
print(alien_0)
#字典遍历:遍历键值对、遍历键、遍历值
user_0={
'username': 'efermi',
'first': 'enrico',
'last': 'fermi',
'total': 'efermi',
}
#item()方法用于遍历字典中的键值对
for key,value in user_0.items():
print('\nKey: ' + key)
print('\nValue: ' + value)
print('--------------------------------------')
#keys()方法遍历所有键
for key in user_0.keys():
print('\nKey: ' + key)
'''省略keys()结果相同'''
for key in user_0:
print('\nKey: ' + key)
print('--------------------------------------')
#vlaues()方法遍历字典中的值
for value in user_0.values():
print('\nValue: ' + value)
print('--------------------------------------')
#set()剔除重复值
for value in set(user_0.values()):
print('\nNo duplicate Value: ' + value)
print('--------------------------------------')
运行结果:
{'type': 'novel', 'name': '平凡的世界'}
{'type': 'novel', 'name': '解忧杂货店'}
{'x_position': 0, 'y_position': 25, 'speed': 'medium'}
Original x-position: 0
New x-position: 2
{'x_position': 2, 'y_position': 25}
Key: username
Value: efermi
Key: first
Value: enrico
Key: last
Value: fermi
Key: total
Value: efermi
--------------------------------------
Key: username
Key: first
Key: last
Key: total
Key: username
Key: first
Key: last
Key: total
--------------------------------------
Value: efermi
Value: enrico
Value: fermi
Value: efermi
--------------------------------------
No duplicate Value: fermi
No duplicate Value: enrico
No duplicate Value: efermi
--------------------------------------
参考
《Python编程从入门到实践》埃里克.马瑟斯 著