写在前面

这是笔者的在python学习过程中的一些笔记,如有误,还请谅解。

python学习心得(五)

数据结构之字典


一、字典的介绍

  • 字典属于一种新的数据结构,称为映射(mapping)
  • 字典的作用和列表类似,都是用来存储对象的容器
  • 列表存储数据的性能很好,但是查询数据的性能的很差
  • 在字典中每一个元素都有一个唯一的名字(key),通过这个唯一的名字可以快速的查找到指定的元素
  • 在查询元素时,字典的效率是非常快的
  • 在字典中可以保存多个对象,每个对象都会有一个唯一的名字
    这个唯一的名字,我们称其为键(key),通过key可以快速的查询value
    这个对象,我们称其为值(value)
    所以字典,我们也称为叫做键值对(key-value)结构
    每个字典中都可以有多个键值对,而每一个键值对我们称其为一项(item)
# 使用 {} 来创建字典
>>> d = {} # 创建了一个空字典
>>> print(d,type(d))
{} <class 'dict'>

二、字典的使用

  1. 利用{}创建字典,或者利用dict(k1=v1,k2=v2,k3=v3)创建
  2. 根据键(key)来获取值(value),如果使用字典中不存在的键,会报出异常Key Error
  3. 字典的值可以是任意对象;字典的键可以是任意的不可变对象(int、str、bool、tuple …),但是一般我们都会使用str
  4. 字典的键是不能重复的,如果出现重复的后边的会替换到前边的’’’
>>> # 使用 {} 来创建字典
my_dict = {} #创立一个空字典
# 创建一个保护有数据的字典
>>> my_dict = {
'name':'奕夕',
'age':18,
'gender':'male'
}
>>> print(my_dict['name'])
奕夕

>>> my_dict = {
'name':'奕夕',
'age':18,
'gender':'male',
'name':'yixi'
}
>>> print(my_dict['name'])
yixi
  1. len()获取字典长度
>>> len(my_dict)
3
  1. get(key[, default]) 该方法用来根据键来获取字典中的值
>>> #   如果获取的键在字典中不存在,会返回None
>>> #   也可以指定一个默认值,来作为第二个参数,这样获取不到值时将会返回默认值
>>> print(my_dict.get('name'))
yixi
>>> print(my_dict.get('hello','默认值'))
默认值
  1. d[key] = value 如果key存在则覆盖,不存在则添加
>>> my_dict['name'] = 'GiHub' # 修改字典的key-value
>>> my_dict['name']
'GiHub'
>>> my_dict['address'] = 'world' # 向字典中添加key-value
>>> my_dict['address']
'world'
  1. pop(key[, default])根据key删除字典中的key-value
>>> my_dict.pop('d')#删除不存在的键会报错
Traceback (most recent call last):
  File "<pyshell#20>", line 1, in <module>
    my_dict.pop('d')
KeyError: 'd'
>>> my_dict.pop('d','default')#而有默认值的情况下会返回默认值
'default'

# 根据key删除字典中的key-value
# 会将被删除的value返回!
  1. clear()清空字典

三、字典的遍历

利用for 循环进行字典的遍历:

  1. 通过遍历keys()来获取所有的键
>>> for k in my_dict.keys() :
	print(k)

	
name
age
gender
  1. 通过遍历values()来获取所有的值:
>>> for v in my_dict.values():#此处my_dict被初始化过
	print(v)

	
奕夕
18
male
  1. 通过遍历items()来获取一个双值子序列,其中包含了所有键值对:
>>> for k,v in my_dict.items():
	print(k,v)

	
name 奕夕
age 18
gender male