python——第六章 字典

在本章中,你将学习能够将相关信息关联起来的Python字典。你将学习如何访问和修改字典中的信息。鉴于字典可存储的信息量几乎不受限制,因此我们会演示如何遍历字典中的数据。另外,你还将学习存储字典的列表、存储列表的字典和存储字典的字典。

6.1一个简单的字典

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

字典alien_0 存储了外星人的颜色和点数。使用两条print 语句来访问并打印这些信息,如下所示:

6.2使用字典

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

在Python中,字典用放在花括号{} 中的一系列键—值对表示。

键—值 对是两个相关联的值。指定键时,Python将返回与之相关联的值。键和值之间用冒号分隔,而键—值对之间用逗号分隔。在字典中,你想存储多少个键—值对都可以。 

6.2.1访问字典中的值

要获取与键相关联的值,可依次指定字典名和放在方括号内的键,

alien_0={'color':'green','points':5}
new_point=alien_0['points']
print("You just earned "+str(new_point)+" points!")

6.2.2 添加键—值对,修改字典中的值,删除键—值对

字典是一种动态结构,可随时在其中添加键—值对。要添加键—值对,可依次指定字典名、用方括号括起的键和相关联的值。

下面在字典alien_0中添加两项信息,外星人的x坐标和y坐标

#创建一个空字典
alien_0={}

*添加键-值对

alien_0['x_position']=0
alien_0['y_position']=25
#修改字典中的值
alien_0['x_position']=15
#删除键-值对
del alien_0['y_position']
#输出字典
print(alien_0)

 

6.3 遍历字典

6.3.1 遍历所有的键—值对

方法items()

user_0={
    'username':'akashi',
    'first':'akashi',
    'last':'kenji',
    }
for key,value in user_0.items():
	print("\nKey: "+key)
	print("Value: "+value)

要编写用于遍历字典的for 循环,可声明两个变量,用于存储键—值对中的键和值。对于这两个变量,可使用任何名称。

6.3.2 遍历字典中的所有键

在不需要使用字典中的值时,方法keys() 很有用。

favorite_languages={
    'jen':'python',
    'sarah':'c',
    'akashi':'ruby',
    'suga':'python',
    }
friends=['jen','akashi','suga']
#也可不加keys()
for name in favorite_languages.keys():
	if name in friends:
		print("\nHi,"+name.title()+" ,I see your favorite language is: "+
		favorite_languages[name].title()+"!")

6.3.3 按顺序遍历字典中的所有键

字典总是明确地记录键和值之间的关联关系,但获取字典的元素时,获取顺序是不可预测的。

要以特定的顺序返回元素,一种办法是在for 循环中对返回的键进行排序。为此,可使用函数sorted() 来获得按特定顺序排列的键列表的副本:

favorite_languages={
    'jen':'python',
    'sarah':'c',
    'akashi':'ruby',
    'suga':'python',
    }

for name in sorted(favorite_languages.keys()):
	print(name.title()+"'s favorite language is:"+favorite_languages
	[name].title()+".")

按字母顺序排序

 

6.3.4 遍历字典中的所有值

如果你感兴趣的主要是字典包含的值,可使用方法values() ,它返回一个值列表,而不包含任何键。

favorite_languages={
    'jen':'python',
    'sarah':'c',
    'akashi':'ruby',
    'suga':'python',
    }
print("The followed language have been metioned:\n")
for language in favorite_languages.values():
	print(language.title())

通过对包含重复元素的列表调用set() ,可让Python找出列表中独一无二的元素,并使用这些元素来创建一个集合。

print("The followed language have been metioned:\n")
for language in set(favorite_languages.values()):
	print(language.title())

6.4 嵌套

有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套 。你可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。

6.4.1在列表中嵌套字典

## 创建一个用于存储外星人的空列表
aliens=[]
#range创建30个绿色外星人
for alien_number in range(30):
	new_alien={'color':'green','point':5,'speed':'slow'}
	aliens.append(new_alien)
#显示前5个外星人
for alien in aliens[:5]:
	print(alien)
print("...")
#显示创建了多少外星人
print("Total number of aliens: "+str(len(aliens)))

6.4.2 在字典中存储列表

pizza={
    'crust':'thick',
    'toppings':['mushrooms','extra cheese'],
    }

print("You ordered a "+pizza['crust']+"-crust pizza"
    +" with the following toppings:")

for topping in pizza['toppings']:
	print(topping)

每当需要在字典中将一个键关联到多个值时,都可以在字典中嵌套一个列表。

6.4.3 在字典中存储字典

users={
    'tsukishima':{
        'first':'tsukishima',
        'last':'kei',
        'location':'wuye',
        },
    'akashi':{
        'first':'akashi',
        'last':'keiji',
        'location':'xiaomu'
        },
    }
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)
	
    
   

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值