在Python中,字典是一系列键值对。每个键都与一个值相关联。与键相关联的值可以是数、字符串、列表乃至字典。事实上,可以将任何Python对象用作字典中的值。

1. 使用字典

1.1 访问字典中的值

通过键拿到字典中的值

alien_0 = {'color': 'green', 'points':5}
print(f"get color {alien_0['color']}")
print(f"get points {alien_0['points']}")

1.2 添加键值对

# 往字典添加元素
alien_0['x_position'] = 0
alien_0['y_position'] = 25

1.3 修改字典中的值

和添加的写法一样,只是键是存在的。

#修改字典中的值
alien_0['color'] = 'yellow'
print(f"改color {alien_0['color']}")

1.4 删除键值对

#删除键值对
del alien_0['points']
print(f"删除points后 {alien_0}")

1.5 使用get来访问值

key不存在的情况下,默认的访问方式会崩溃,get()返回一个默认值。

alien_0 = {'color': 'green', 'speed':'slow'}
point_value = alien_0.get('points','No point value assigned.')
print(point_value)

2. 遍历字典

2.1 遍历所有键值对

user_0 = {
	'username': 'efermi',
	'first': 'enrico',
	'last': "fermi"
}
#遍历字典
for k,v in user_0.items():
	print(f"\nkey:{k}")
	print(f"value:{v}")

2.2 遍历字典中的所有键

2.2.1 一般遍历所有键

#字典列出多行
favorite_languages = {
	'jen': 'python',
	'sarah': 'c',
	'edward': 'ruby',
	'phil': 'python'
	}
#遍历所有的键
print("遍历所有的键")
for name in favorite_languages.keys():
	print(name.title())	

2.2.2 按特定顺序遍历所有键

for name in sorted(favorite_languages.keys()):
	print(f"{name.title()}, think you taking poll")

2.3 遍历字典中的所有值

2.3.1 一般遍历所有值

#遍历所有的值
print("遍历所有的值")
for language in favorite_languages.values():
	print(language.title())

2.3.2 遍历去重的字典

print("遍历去重的值")
for language in set(favorite_languages.values()):
	print(language.title())

3.嵌套

3.1 字典列表

#字典嵌套在列表里
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("...")

3.2 在字典中存储列表

#在字典中存储列表
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()}")

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(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()}")

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐