python基础学习之字典

写在前面

这是笔者的在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
    
  2. get(key[, default]) 该方法用来根据键来获取字典中的值

    >>> #   如果获取的键在字典中不存在,会返回None
    >>> #   也可以指定一个默认值,来作为第二个参数,这样获取不到值时将会返回默认值
    >>> print(my_dict.get('name'))
    yixi
    >>> print(my_dict.get('hello','默认值'))
    默认值
    
  3. d[key] = value 如果key存在则覆盖,不存在则添加

    >>> my_dict['name'] = 'GiHub' # 修改字典的key-value
    >>> my_dict['name']
    'GiHub'
    >>> my_dict['address'] = 'world' # 向字典中添加key-value
    >>> my_dict['address']
    'world'
    
  4. 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返回!
    
    
  5. clear()清空字典

三、字典的遍历

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

  1. 通过遍历keys()来获取所有的键

    >>> for k in my_dict.keys() :
    	print(k)
    
    	
    name
    age
    gender
    
    
  2. 通过遍历values()来获取所有的值:

    >>> for v in my_dict.values():#此处my_dict被初始化过
    	print(v)
    
    	
    奕夕
    18
    male
    
  3. 通过遍历items()来获取一个双值子序列,其中包含了所有键值对:

    >>> for k,v in my_dict.items():
    	print(k,v)
    
    	
    name 奕夕
    age 18
    gender male
    
发布了14 篇原创文章 · 获赞 2 · 访问量 518

猜你喜欢

转载自blog.csdn.net/qq_45828448/article/details/104758152