- 在python中,可以把相关信息关联起来的容器就是字典
- 为了更好地模拟现实世界,建模是必须的,字典为建模提供了一个有力的工具
- 字典是一系列的键-值对,每个键都与一个值相关联,可以使用键来访问相关联的值,值可以是任何python对象
- 键和值之间用冒号分隔,而键-值对之间用逗号分隔
- 我在想,键是不是只能是字符串啊
- 如何获取字典中的值,只需要指定字典名和放在方括号内的键,获取的值还可以储存在某个变量里面
- 添加键值对就是指定字典名,用方括号括起来的键和相关联的值
alien_0 = {'colore': "green", "points": 5}
alien_0["x_position"] = 0 # 添加键值对
alien_0["y_position"] = 25 # 添加键值对
print(alien_0)
- 有时候需要创建一个空字典,等待用户来写入数据或者机器自动生成大量键值对
- 可以使用del语句可以删除字典中的键值对,需要指定字典名和要删除的键
- 字典可以储存一个对象的多种信息,如某个人的基本信息,也可以储存众多对象的同一种信息,如被调查的一群人关于某个问题的回答
- 较大的字典可以采取一定的格式放在多行里面,这种格式在其他编程语言里面也很常见
skin_s8 = {
'the shy': 'aatrox',
'ning': 'camille',
'rookie': 'leblanc',
'jacklove': 'kaisa',
'baolan': 'rakan',
'duke': 'irelia',
}
- 上面这个列表,注意两点,一个是右花括号最好也缩进四个空格,而且花括号独占一行哦(如果你去观察其他编程语言的习惯,会发现很多语言的代码都是这样的),二是在最后一个键值对后面也加上一个逗号,方便在下一行继续添加键值对
- 既然可以遍历列表,当然也可以遍历字典,使用for循环可以遍历字典的所有键值对,键或值
for key, value in skin_s8.items(): # items()方法(复数哦)可以返回一个键值对列表,key和value是两个临时变量,也可以简写成k,v
print(key.title()+" wants "+value.title()+".")
# 用方法keys()可以遍历字典中所有键,用方法values()可以遍历字典中所有值
for key in skin_s8.keys():
print(key.title())
- 使用for循环遍历字典时会默认遍历所有的键,所以省略方法keys()也可以,但显示地使用方法keys()可以让代码更加容易理解,所以还是不要省略为好
- 方法keys()实际上是返回一个列表,列表中包含了字典中所有的键
- 函数sorted()好像可以进行临时排序
- 方法values()可以提取字典中所有的值,但不考虑重复性,要剔除重复性,就要对字典使用set()函数,set是集合的意思
- 集合有一个特征就是唯一性,集合中每一个元素都是独一无二的,所以set()函数就是用来创建集合的函数
- 有时需要把字典储存在列表中,或把列表作为值储存在字典中,就这叫嵌套,嵌套是一个强大的功能
- 经常需要在列表中储存大量字典,如网站为每一个用户创建一个字典,这些字典储存在users这个列表里面
- 当需要在字典中将一个键关联到多个值的时候,可以在字典中嵌套一个列表
- 变量可以代表任何东西,或者说任何东西都可以赋给变量
- 嵌套的层级不需要太多,一般不超过两层,把问题简单化才是本领(抓要害)
- 虽然可以在字典里面嵌套字典,就算可以保证每个字典结构相同,但也会让代码复杂起来,并不鼓励这样做
people_0 = {'name': 'keyoung', 'age': 23, 'hobby': 'badminton'}
people_1 = {'name': 'laomao', 'age': 24, 'hobby': 'basketball'}
peoples = [people_0, people_1]
for people in peoples:
print(people['name'].title()+"'s age is "+str(people['age'])+" and hobby is "+
people['hobby']+'.')
网友评论