ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

用人话概况Python基础(四):字典 干货来了!!!

2020-02-04 09:41:22  阅读:362  来源: 互联网

标签:name people Python hair 干货 user print 字典


用人话概况Python基础(四):字典

字典定义

定义:在Python中字典是一系列键-值对,每个键都会与一个值相关联。

在Python中,字典将一系列得键-值对放在花括号中,在字典中想存储多少个键-值对都可以,键-值对之间用逗号隔开

people = {‘name’:“xiaowang”,‘age’:18,‘points’:85}

字典的操作

此处要介绍的字典操作有访问、遍历、添加、修改、删除

访问

要访问字典中的某一个值,我们只需把该值对应的键放入[]内即可,如下所示:

people = {‘name’:“xiaowang”,‘age’:18,‘points’:85}
print(people['name'])

#打印结果
xiaowang

遍历

如果我们需要获取字典中的所有元素,那么我们就得使用高效得方法进行获取,这时我们就可以使用一个for循环来遍历这个字典

1.遍历所有的键-值对

user = {'name':'jery','hair':'black','lover':'tom'}
for key,value in user.items():
	print("Key:"+key)
	print("Value:"+value+'\n')

#打印结果
Key:name
Value:jery

Key:hair
Value:black

Key:lover
Value:tom

案例分析:
①我们要获取键-值,那么我们需要声明两个变量存储键-值对中得键和值,也就是案例中for循环中声明的key和value
②由于我们要遍历的是所有的键-值对的键和值,所以我们要使用方法items(),以此来返回一个键-值对

2.遍历所有的键

user = {'name':'jery','hair':'black','lover':'tom'}
for key in user.keys():
	print(key)

#打印结果
name
hair
lover	

案例分析:
①当我们只需要获取键-值对中的键时,我们只需要使用方法keys()即可
②因为我们只需要获取键-值对中的键,所以我们在for循环中只需要声明一个变量来存储每个键的信息即可

3.遍历所有的值

user = {'name':'jery','hair':'black','lover':'tom'}
for value in user.values():
	print(value)

#打印结果
jery
black
tom

案例分析:
①当我们只需要获取键-值对中的值时,我们需要使用方法values()
②因为我们只需要获取键-值对中的键,所以我们在for循环中只需声明一个变量来存储每个值的信息即可

添加键-值对

字典属于是一种动态结构,可以随时添加键-值对,只需依次指定字典名、把键放进[]中,再将相关联的值赋上去即可,如下所示:

#给字典添加新键-值对,'home':'beijing'和'food':'apple'
people = {'name':'xiaowang','age':18,'points':85}
people['home'] = 'beijing'
people['food'] = 'apple'
print(people)

#打印结果
{'name': 'xiaowang', 'age': 18, 'points': 85, 'home': 'beijing', 'food': 'apple'}

注:键-值得排列循序不一定和添加得顺序意义,因为Python不关心键-值得添加顺序,只关心键和值得关联关系

修改键-值对

我们如果想要修改字典中得值,只需将键与新值关联起来即可。

因为新值的赋予将会覆盖原来的值,从而达到修改得目的。
如下所示:

people = ['name':'xiaowang']
print('My name is '+people['name'])
people['name'] = 'liuliu'
print(people)

#打印结果
My name is xiaowang
 ['name':'liuliu']

删除键-值对

对于字典不需要的信息,我们可以使用del语句将其删除。使用del语句时,需要指定字典名和要删除的键

如下所示:

#删除'points':85,并将新的字典打印出来
people = {'name':'xiaowang','age':18,'points':85}
del people['points']
print(people)

#打印结果
 {'name':'xiaowang','age':18}

字典的嵌套应用

字典的几种常见嵌套应用有以下所列三种,由于这三种嵌套思想通过案例观察很容易明白,因此不作过多说明,但要想熟练掌握,仍需不断的进行练习巩固

1.字典列表

user_1 = {'name':'mark','hair':'long'}
user_2 = {'name':'jack','hair':'short'}
user_3 = {'name':'jenny','hair':'long'}

users = [user_1,user_2,user_3]
for user in users:
	print(user)

#打印结果
{'name':'mark','hair':'long'}
{'name':'jack','hair':'short'}
{'name':'jenny','hair':'long'}

2.将列表嵌套于字典中

users_lists = {
	'xiaoming':['banana','apple'],
	'xiaoliu':['orange']
	}
for name,foods in users_lists.items():
	print('\n'+name.title() + "'s favourite food are:")
	for food in foods:
		print('\t'+food.title())

#打印结果

Xiaoming's favourite food are:
	Banana
	Apple

Xiaoliu's favourite food are:
	Orange

案例分析:
字典中的键是唯一的,但值是以列表的形式存储的,所以获取值是需要利用for循环来遍历获取

3.在字典中嵌套字典

我们设两个字典为a字典和b字典,那么在a字典中嵌套b字典,那么b字典将作为a字典键-值对中的值

users_lists = {
	'user_1':{
		'name' = 'xiaoming',
		'hair' = 'long'
	},
	'user_2':{
		'name' = 'xiaowang',
		'hair' = 'short'
	}
}
for user,user_info in users_lists.items():
	print('\nUser_number:'+user)
	message = user_info['name'].title+ 'has a '+user_info['hair']+'hair'
	print('\t'+message)

#打印结果

User_number:user_1
	Xiaoming has a long hair

User_number:user_2
	Xiaowang has a short hair

案例分析:
①我们首先定义了一个字典users_lists,包含两个键,分别为user_1和user_2
②每个键关联的都是一个字典,其中包含name和hair
③我们先是用for循环遍历了字典users_lists,并将键存储于user中,值(字典)存储于user_info中
④接着输出键的信息【print(’\nUser_number:’+user)】
⑤提取嵌套的字典中的相关信息,组成我们想要的内容message【message = user_info[‘name’].title+ 'has a '+user_info[‘hair’]+‘hair’】
⑥打印message
⑦重复for循环语句,直至结束

——————————————————————————————————————————————————

你的每次点赞,我都认真的当作是喜欢~~~

潇囧囧 发布了4 篇原创文章 · 获赞 9 · 访问量 615 私信 关注

标签:name,people,Python,hair,干货,user,print,字典
来源: https://blog.csdn.net/weixin_43856851/article/details/104162293

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有