文章目录
- 一、什么是字典
- 二、访问键-值对
- 三、添加、修改键-值对
- 四、删除键-值对
- 4.1 语句del
- 4.2 方法pop()
- 五、创建空字典
- 六、遍历字典
- 6.1方法items()
- 6.2方法keys()
- 6.3方法values()
- 七、嵌套
- 7.1 字典列表
- 7.2 在字典中存储列表
- 7.3 在字典中存储字典
一、什么是字典
#创建一个字典
alien_0 = {'color': 'red', 'points': 5}
- alien_0就是一个字典
- 字典定义使用大括号
{}
- 字典大括号
{}
内部包含一系列的键-值对
键-值对
之间,使用逗号分隔键-值对
内部,由冒号:
分隔为两个部分:键:值
键
为描述部分,描述该键-值对
代表的含义值
为数值部分,描述键
部分对应的具体内容,值
可为:数字、字符串、列表、字典键
为描述性短语,一般为字符串,值
部分有时也为字符串,每个字符串需要单独的引号
二、访问键-值对
#创建字典
alien_0 = {'color': 'red', 'points': 5}
#访问字典
print(alien_0['color'])
print(alien_0['points'])
- 访问字典数据,使用方括号
[]
- 方括号
[]
内部,为键
的内容
三、添加、修改键-值对
#创建字典,因数据较长,分行写
favorite_languages = {
'liming': 'c', #注意此处不要遗漏逗号
'xiaohua': 'python',
} #此处大括号,单独写一行,让大括号更加明显,起到方便阅读和防遗漏作用
#打印字典
print(favorite_languages)
#添加键-值对
favorite_languages['lihong'] = 'java'
#打印字典
print(favorite_languages)
#修改字典的内容
favorite_languages['lihong'] = 'ruby'
#打印字典
print(favorite_languages)
运行结果:
注意,我们添加和修改字典数据的时候,使用的代码如下:
#添加键-值对
favorite_languages['lihong'] = 'java'
#修改字典的内容
favorite_languages['lihong'] = 'ruby'
- 添加和修改字典内容,使用的代码格式是一样的
- 给字典里某个
键
赋值的操作:
2.1 若该键
已经存在,则赋值操作修改键
对应的值
2.2 若该键
不存在,则赋值操作在字典中添加该键-值对
四、删除键-值对
4.1 语句del
alien_0 = {'color': 'red', 'points': 5}
print(alien_0)
#彻底删除points键值对
del alien_0['points']
print(alien_0)
语句del彻底删除了指定键-值对,没有返回。
4.2 方法pop()
alien_0 = {'color': 'red', 'points': 5}
print(alien_0)
#使用方法pop()弹出指定键-值对,返回`键`对应的`值`
delete = alien_0.pop('points')
print(delete)
print(alien_0)
方法pop()弹出键-值对,弹出就是删除,但此处会返回键
对应的值
。
五、创建空字典
有时,我们需要用字典来保存用户输入的数据,或用字典来保存程序运行过程中产生的数据。这两种情况,都要先有一个空的字典,再往里面存放后续产生的数据。
#创建空字典
alien_0 = {}
print(alien_0)
#添加键-值对
alien_0['color'] = 'red'
alien_0['points'] = 5
print(alien_0)
运行结果:
六、遍历字典
6.1方法items()
返回字典中的键-值对
#创建字典
user_0 = {
'username': 'xiaoming',
'first': 'li',
'last': 'ming',
}
#使用for循环,打印所有键-值对
for key, value in user_0.items():
print('key: ', key, '\t\tvalue: ', value)
运行结果:
- user_0.items()返回字典中的一个
键-值对
,将键
返回给变量key,将值
返回给变量value - 使用for循环遍历字典,便可以访问字典中所有
键-值对
6.2方法keys()
返回字典中的键
user_0 = {
'username': 'xiaoming',
'first': 'li',
'last': 'ming',
}
#遍历所有的键
for key in user_0.keys():
print(key)
运行结果:
- user_0.keys()只会返回字典中的一个
键
- 使用for循环,便可遍历字典中所有的
键
6.3方法values()
返回字典中的值
user_0 = {
'username': 'xiaoming',
'first': 'li',
'last': 'ming',
}
#遍历所有的键
for value in user_0.values():
print(value)
运行结果:
- user_0.values()返回字典中的一个
值
- 使用for循环,便可以遍历字典中所有的
值
七、嵌套
7.1 字典列表
#创建三个字典
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)
运行结果:
- 列表中可存放任意类型数据,当然也可以将字典存入列表
- 字典列表:(只含有)字典(的)列表
7.2 在字典中存储列表
有时,一个键
的后面,对应着多个值
。
比如:描述pizza的配料时,因配料不仅一种,故需要使用列表。
#创建披萨的内外用料字典
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('\t' + topping)
运行结果:
7.3 在字典中存储字典
有时,键-值对
中的值
中包含信息较多、教复杂,需要使用新的键-值对
来描述。
#创建字典,键-值对为:用户名:用户信息
#用户信息:包含数据较多,信息分为三个键-值对,采用字典来组织信息
users = {
'xiaoming': {
'first': 'li',
'last': 'ming',
'location': 'kunming',
},
'lili': {
'first': 'li',
'last': 'li',
'location': 'dali',
},
}
#使用for循环,遍历用户信息
for username, user_info in users.items():
#打印用户名
print('username: ', username)
#从用户信息中,获取用户的姓和名,拼接为全名
full_name = user_info['first'] + user_info['last']
#从用户信息中,获取用户居住地
location = user_info['location']
#打印用户完整信息
print('\tFull_name: ', full_name)
print('\tLocation: ', location)
运行结果: