在Python中,字典是一系列键值对。每个键都与一个值相关联。与键相关联的值可以是数、字符串、列表乃至字典。事实上,可以将任何Python对象用作字典中的值。
通过键拿到字典中的值
alien_0 = {'color': 'green', 'points':5}
print(f"get color {alien_0['color']}")
print(f"get points {alien_0['points']}")
# 往字典添加元素
alien_0['x_position'] = 0
alien_0['y_position'] = 25
和添加的写法一样,只是键是存在的。
#修改字典中的值
alien_0['color'] = 'yellow'
print(f"改color {alien_0['color']}")
#删除键值对
del alien_0['points']
print(f"删除points后 {alien_0}")
key不存在的情况下,默认的访问方式会崩溃,get()返回一个默认值。
alien_0 = {'color': 'green', 'speed':'slow'}
point_value = alien_0.get('points','No point value assigned.')
print(point_value)
user_0 = {
'username': 'efermi',
'first': 'enrico',
'last': "fermi"
}
#遍历字典
for k,v in user_0.items():
print(f"\nkey:{k}")
print(f"value:{v}")
#字典列出多行
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python'
}
#遍历所有的键
print("遍历所有的键")
for name in favorite_languages.keys():
print(name.title())
for name in sorted(favorite_languages.keys()):
print(f"{name.title()}, think you taking poll")
#遍历所有的值
print("遍历所有的值")
for language in favorite_languages.values():
print(language.title())
print("遍历去重的值")
for language in set(favorite_languages.values()):
print(language.title())
#字典嵌套在列表里
print("字典嵌套在列表里")
alien_0 = {'color':'green', 'points':5}
alien_1 = {'color':'yellow', 'points':10}
alien_2 = {'color':'red', 'points':15}
aliens = [alien_0, alien_1, alien_2]
for alien in aliens:
print(alien)
print("动态创建一个字典嵌套列表")
#创建一个存储外星人的空列表
aliens =[]
#创建30个绿色的外星人(使用range告诉for要循环多少次)
for alien_number in range(30):
new_alien = {'color':'green', 'points':5, 'speed':'slow'}
aliens.append(new_alien)
#显示前5个外星人
for alien in aliens[:5]:
print(alien)
print("...")
#显示创建了多少个外星人
print(f"Total number if aliens:{len(aliens)}")
#增加外星人会变色的功能
for alien in aliens[:3]:
if alien['color'] == 'green':
alien['color'] = 'yellow'
alien['speed'] = 'medium'
alien['posints'] = 10
elif alien['color'] == 'yellow':
alien['color'] = 'red'
alien['speed'] = 'fast'
alien['points'] = 15
#显示前5个外星人
for alien in aliens[:5]:
print(alien)
print("...")
#在字典中存储列表
pizza = {
'crust':'trunk',
'toppings':['mushrooms','extra cheese']
}
print(f"You ordered a {pizza['crust']}-crust pizza "
"with the following toppings:")
for toppings in pizza['toppings']:
print("\t" + toppings)
favorite_languages = {
'jeh': ['python', 'ruby'],
'sarah': ['c'],
'edward': ['ruby', 'go'],
'phil': ['python', 'haskell']
}
for name,languages in favorite_languages.items():
print(f"\n{name.title()}'s favorite language are:")
for language in languages:
print(f"\t{language.title()}")
在字典中存储字典
users = {
'aeinstein': {
'first': 'albert',
'last': 'einstein',
'location': 'princeton'
},
'mcurie': {
'first': 'marie',
'last': 'curie',
'location': 'paris'
}
}
for username,user_info in users.items():
print(f"\nUsername:{username}")
full_name = f"{user_info['first']} {user_info['last']}"
location = user_info['location']
print(f"\tFull name: {full_name.title()}")
print(f"\tLocation: {location.title()}")