小白如何成为python数据分析师
第9天---->字典(dict)
小学我们就学会了翻阅查询新华字典了,我们可以通过目录索引查询我们要找的字,便于理解学习这个字和字的含义。那么在编程语言中我们像字典的数据类型呢?还真有,也称为字典。就像《新华字典》中,每个字都有与它对应的解释一样,每个字和它的解释合在一起就是字典中的一个条目。在字典的字称为键,字的解释称为值。 键(key)和值(value)组成的条目称为键值对。字典={键:值, 键:值, 键:值, …}
当我们需要存储多个信息时,比如一个人的个人信息(姓名,年龄、性别、爱好、联系方法…),我们可以使用之前学过的列表、元组和集合,但是你会发现这些都不是最理想的选择。会有各自的问题。我们将一堆数据放进去,读取数据时,我们就会发现,这是个啥?因为没有声明,导致我们放进去的数据,读出来时,我们就不认识了。集合是最不合适的,因为集合有去重特性,如果一个人的年龄和体重相同,那么集合中就会少一项信息。查询时,我们得知道下标才好查找。不然就得一个一个的遍历查找,效率低下。这时就是字典拯救我们了。
我们可以通过键很好的理解(值)数据含义,可以通过键快速查询到值。
字典(dictionary)类型,这种数据类型最适合把相关联的信息组装到一起,并且可以帮助我们解决程序中为真实事物建模的问题。
相信你已经对字典有了一定了解,下面我们就来更深入的学习字典吧!
创建和使用字典
1.字面量语法
在Python中创建字典可以使用{}
字面量语法,跟列表、集合差不多。值得注意的是字典的{}
中的元素是以键值对的形式存在的,每个元素由:
分隔的两个值构成,:
前面是键,:
后面是值。
kuanglu = {
'李淳罡': '天不生我李淳罡,剑道万古如长夜。',
'萧炎': '三十年河东,三十年河西,莫欺少年穷!',
'安澜': '仙之巅,傲世间,有我安澜便有天!',
'王腾': '我儿王腾有大帝之姿!'
}
print(kuanglu['王腾'])
person = {
'name': '王大锤',
'age': 20,
'weight': 60,
'office': '科华北路62号',
'home': '中同仁路8号',
'tel': '13122334455',
'contacts': {
'qq': 123456,
'tel': 12345678910,
'a': 45,
'9': 58
}
}
print(person['name'])
print(person['contacts']['qq'])
print(person['contacts']['a'])
print(person['contacts']['9'])
用字典来保存一个人的信息远远优于使用列表或元组,因为我们可以用:
前面的键来表示条目的含义,而:
后面就是这个条目所对应的值。
2.构造式语法(使用内置函数dict
创建字典)
# dict函数(构造器)中的每一组参数就是字典中的一组键值对
person = dict(name='安澜', age=99999999, weight=9999999, home='帝城')
print(person) # {name='安澜', age=99999999, weight=9999999, home='帝城'}
3.通过Python内置函数zip压缩两个序列并创建字典
a = 'ABCDE'
b = '12345'
items1 = dict(zip(a, b))
# items1 = dict(zip('ABCDE', '12345'))
print(items1) # {'A': '1', 'B': '2', 'C': '3', 'D': '4', 'E': '5'}
items2 = dict(zip('ABCDE', range(1, 10)))
print(items2) # {'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5}
4.生成式语法创建字典
# 列表的生成式语法
list1 = [i for i in range(1, 10)]
print(list1) # [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 字典的的生成式语法
student2 = {
i: i **