Python基础(五)字典

1.字典

在Python中,字典是一系列键值对,每个键都与一个值相关联,你可以使用键来访问与之相关联的值。
键值对是两个相关联的值,指定键时,Python将返回与之相关联的值。以下是一个简单的字典:

alien = {'color':'red','point':5}
print(alien['color'])
print(alien['point'])

在这里插入图片描述
1.1添加键值对
字典是一种动态结构,可随时在其中添加键值对。要添加键值对只需要先指定字典名,方括号括来的键和相关联的值。

alien = {'color':'red','point':5}
alien['x'] = 0
alien['y'] = 15
print(alien)

在这里插入图片描述
1.2.修改字典中的值
要修改字典中的值,可以指定字典名,方括号括来的键和相关联的值以及与该键相关联的新值。

alien = {'color':'red','point':5}
print(alien['color'])
alien['color'] = 'green'
print(alien['color'])

在这里插入图片描述
这里举一个例子,表示对能够以不同速度行驶的汽车进行追踪:

car = {'x':0,'y':2,'speed':'fast'}
print("Original x:" + str(car['x']))
if car['speed'] == 'slow':
	x_increment = 1
elif car['speed'] == 'medium':
	x_increment = 2
else:
	x_increment = 3
car['x']=car['x'] + x_increment
print("Now your x is:" + str(car['x']))

在这里插入图片描述
我们先定义一辆汽车,以及它的x,y坐标和速度,还添加了x的初始值,并用if-elif-else结构来确定移动距离,并将值存储在x——increment中。
1.3.删除键值对
使用del语句。

car = {'x':0,'y':2,'speed':'fast'}
print(car)
del car['x']
print(car)

在这里插入图片描述

2.遍历字典

2.1遍历所有键值对
使用for循环以及items()方法,这个方法会一个键值对列表。但是即使遍历字典,Python也不会按照存储顺序来返回,它并不关心键值对的存储关系,只关注键和值之间的关联关系。

user = {'username':'efermi','first':'enrico','last':'fermi'}
for key,value in user.items():
	print("\nKey:" + key)
	print("Value:" + value)

在这里插入图片描述
2.2遍历键
使用方法key()。遍历时会默认遍历所有的键。

user = {'username':'efermi','first':'enrico','last':'fermi'}
for key in user.keys():
	print(key.title())

在这里插入图片描述
2.3按顺序遍历所有的键
在for循环中对返回的键进行排序,使用sorted()方法来获得按特定顺序排列的键列表的副本。

user = {'d':'efermi','s':'enrico','v':'fermi'}
for name in sorted(user.keys()):
	print(name.title())

在这里插入图片描述
2.4遍历所有的值
对包含重复元素的列表调用set(),可以让Python找出列表中独一无二的元素,并创建一个集合。

user = {'d':'efermi','s':'enrico','v':'fermi','c':'efermi'}
for name in set(user.values()):
	print(name.title())

在这里插入图片描述

3.嵌套

3.1字典列表
使用range()方法生成多个字典,而且每个字典中都有键值对。

cars = []
for car_number in range(30):
	new_car = {'color':'red','speed':'slow'}
	cars.append(new_car)
for car in cars[:5]:
	print(car)
	print("...")
print("Total number of cars:" + str(len(cars)))

在这里插入图片描述
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("\t" + language.title())

在这里插入图片描述
如以上例子,现在与每一个名字相关联的值都是一个列表,我们使用变量languages来依次存储字典中的每个值;在遍历的主循环中我们有使用了一个for循环来遍历每个人喜欢的语言列表。
3.3在字典中存储字典

users = {'aeinstein':
	{'first':'albert','last':'einstein','location':'princeton'},
	'murie':{'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())
	

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值