alien_0 = {'color': 'green', 'points': 5}
print(alien_0['color'])
print(alien_0['points'])
1使用字典
字典是一系列 key-value对,每个键都与一个值相关联,Key-value对是两个相关联的值。
key和value之间用冒号分隔,key-value之间用逗号分隔,在字典中,存储多少个key-value对都行。
alien_0 = {'color': 'green'}
1.2、访问字典中的值
alien_0 = {'color': 'green', 'points': 5}
print(alien_0['color'])
new_points = alien_0['points']
print("You just earned " + str(new_points) + " points!")
1.3、添加键-值对
字典是一种动态结构,可随时在其中添加键-值对。
key-value对的排列顺序与添加顺序不同,python不关心键-值对的添加顺序,而只关心键和值之间的关联关系。
alien_0 = {'color': 'green', 'point': 5}
print(alien_0)
alien_0['x_position'] = 0
alien_0['y_position'] = 25
print(alien_0)
1.4、创建空字典
可以直接使用一对空花括号定义一个空字典,然后根据需要再添加键值对
alien_0 = {}
alien_0['color'] = 'green'
alien_0['point'] = 5
print(alien_0)
1.5、修改字典中的值
alien_0 = {'color': 'green'}
print(alien_0['color'])
alien_0['color'] = 'yellow'
print(alien_0['color'])
1.6、删除键值对
对于字典中不再需要的信息,可以使用del语句将相应的键值对彻底删除
alien_0 = {'color': 'green', 'point': 5}
print(alien_0)
del alien_0['points']
print(alien_0)
1.7、由类似对象组成的字典
可以使用字典来存储众多对象的同一信息
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
print("sarah`s favorite language is " + favorite_languages['sarah'].title() + ".")
2、遍历字典
2.1、遍历所有的键值对
遍历字典时,键-值对的返回顺序也与存储顺序不同。
user_0 = {
'usrname': 'efermi',
'first': 'enrico',
'last': 'fermi',
}
for key, value in user_0.item():
print("\nKey: " + key)
print("Value: " + value)
2.2、遍历所有的键
遍历字典时,会默认遍历所有的键,所以可以加.keys()
,也可以不加
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
firends = ['phil', 'sarah']
for name in favorite_languages.keys():
print(name.title())
if name in friends:
print(" Hi " + name.title() + ", I see your favorite language is " + favorite_languages[name].title() + "!")
还可以使用关键字in
, not in
确定某个Key是否在字典中
Keys()并非只能用于遍历,实际上,它返回了一个列表,其中包含字典中所有键。
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
if 'erin' not in favorite_languages.keys():
print("Erin, please take our poll!")
2.3、按顺序遍历字典中的所有键
获取字典元素时,获取顺序是不可预测的。
要以特定顺序返回元素,可以在for循环中对返回的键进行排序
for name in sorted(favorited_languages.keys()):
print(name.title() + ", thank you for taking the poll.")
2.4、遍历字典中所有值
2.4.1、基本方法
获取字典中包含的值,可使用方法values(),它返回一个值列表,而不包含任何键。
for language in favorite_languages.values():
print(language.title())
2.4.2、去除重复值
基本方法中没有考虑值重复的问题,如果要剔除重复值,可使用集合set
。集合类似于列表,但是每个元素都必须独一无二。
set()
方法可以让python找出列表中独一无二的元素,并使用这些元素来创建一个集合
for language in set(favorite_languages.values()):
print(language.title())
3、嵌套
3.1、字典列表
可以创建一个字典列表,列表中的每个元素都是一个字典
alien_0 = {'color': 'red', 'points': 5}
alien_1 = {'color': 'green', 'points': 10}
alien_2 = {'color': 'yellow', 'points': 15}
aliens = [alien_0, alien_1, alien_2]
for alien in aliens:
print(alien)
使用range()自动生成多个字典对象
aliens = []
for alien_number in range(30):
new_alien = {'color': 'green', 'points': 5, 'speed': 'slow'}
aliens.append(new_alien)
for alien in aliens[:5]:
print(alien)
print("/nTotal number of aliens: " + str(len(aliens)))
3.2、在字典中存储列表
favorite_languages = {
'jen': ['python', 'ruby'],
'sarah': ['c'],
'edward': ['ruby', 'go'],
'phil': ['python', 'haskell'],
}
for name, languages in favorite_languages.items():
print("\n" + name.title() + "'s favorite languages are: ")
for language in languages:
print(lanuage)
3.3、在字典中存储字典
users = {
'aeinstein': {
'first': 'albert',
'last': 'einstein',
'location': 'princeton',
},
'mcurie': {
'first': 'marie',
'last': 'curie',
'location': 'paris',
},
}
for username, user_info in users.items():
print("\nUsername: " + username)
full_name = user_info['first'] + " " + user_info['last']
location = user_info['location']
print("\tFull name: " + full_name.title())
print("\tLocation: " + location.title())
网友评论