• 字典的基本概念


    目录

    1.字典是什么?

    2.字典的创建

    3. 字典的基本操作

    3.1使用in判断某个key是否在字典中存在

    3.2使用[ ]来根据key获取到value

    4.字典的新增和修改操作

    5.字典的删除操作

    6.字典的遍历操作

    6.1使用for循环进行遍历

     6.2取出所有key和value

    7.可哈希的类型


    1.字典是什么?

    字典是一种存储键值对的结构。

    什么是键值对?

     在Python的字典中,可以同时包含很多个键值对,同时要求这些键,不能重复。

    2.字典的创建

    1. #1.创建字典
    2. a={}
    3. print(type(a))
    4. b=dict()
    5. print(type(b))
    6. #2.创建字典的同时设置初始值
    7. a={'id':1,'name':'zhangsan'}

     字典a中包含了两个键值对

    (1)'id':1 key就是'id',value就是1

    (2)'name':'zhangsan' key就是'name',value就是'zhangsan'。

    一个字典中的key value 的类型不必要都一样,但是对于key的类型有约束。

    对于value的类型没有约束。

    3. 字典的基本操作

    3.1使用in判断某个key是否在字典中存在

    1. #3.使用in来判定某个key是否在字典中存在
    2. a={
    3. 'id':1,
    4. 'name':'zhangsan'
    5. }
    6. print('id' in a)
    7. print('classId' in a)

    1. #in只是判断key是否存在,和value无关
    2. print('zhangsan' in a)
    3. #not in 来判断key在字典中不存在
    4. print('id' not in a)
    5. print('classId' not in a)

     

     


    3.2使用[ ]来根据key获取到value

    1. #4.使用[ ]来根据key获取到value
    2. a={
    3. 'id':1,
    4. 'name':'zhangsan',
    5. 100:'lisi'
    6. }
    7. print(a['id'])
    8. print(a['name'])
    9. print(a[100])

     

     

    对于字典来说,使用in或者[ ]来获取value(字典背后使用了特殊的数据结构:哈希表),都是非常高效的操作!!!

    对于列表来说,使用in比较低效(需要把整个列表遍历一遍),而使用[ ](类似于数组/顺序表取下标)是比较高效的。

    4.字典的新增和修改操作

    1. #1.在字典中新增元素,使用[ ]来进行
    2. a={
    3. 'id':1,
    4. 'name':'zhangsan'
    5. }
    6. #这个操作就是往字典里插入新的键值对
    7. a['score']=90
    8. print(a)
    9. #2.在字典中,根据key修改value,也是使用[ ]来进行的
    10. a['score']=100
    11. print(a)

    如果key不存在,往里写入,相当于新增键值对。

    如果key存在,往里写入,则相当于key修改value。

     

    5.字典的删除操作

    1. #3.使用pop方法,根据key来删除键值对
    2. a.pop('name')
    3. print(a)

     

    6.字典的遍历操作

    遍历指的就是能够把一个可迭代对象,里面包含的元素依次取出来,并进行一些操作,整个过程要求不重不漏。

    字典被设计出来的初衷,不是为了实现遍历,而是为了实现增删改查。

    字典是哈希表,进行增删改查操作,效率是非常高的,而字典的遍历则效率就要差一些。

    哈希表这个结构设计非常巧妙,能够以'常数级'时间复杂度(无论字典有多少元素,新增,修改,查找,删除都是固定时间,不会因为元素多了,操作就慢了)来完成增删改查。

    字典中的key不能重复。

    6.1使用for循环进行遍历

    1. #1.直接使用for循环来遍历字典
    2. a={
    3. 'id':1,
    4. 'name':'zhangsan',
    5. 'score':90
    6. }
    7. for key in a:
    8. print(key,a[key])

     6.2取出所有key和value

    1. a={
    2. 'id':1,
    3. 'name':'zhangsan',
    4. 'score':90
    5. }
    6. # for key in a:
    7. # print(key,a[key])
    8. print(a.keys())
    9. print(a.values())
    10. print(a.items())

    1. #1.直接使用for循环来遍历字典
    2. a={
    3. 'id':1,
    4. 'name':'zhangsan',
    5. 'score':90
    6. }
    7. for key,value in a.items():
    8. print(key,value)

     

    7.可哈希的类型

    在Python中专门提供了一个hash函数,可以计算这个变量的hash值。

    1. #使用hash函数能够计算出一个变量的hash值
    2. print(hash(0))
    3. print(hash(3.14))
    4. print(hash('hello'))
    5. print(hash(True))
    6. #元组也可以计算哈希值
    7. print(hash(1,2,3))
    8. #有的类型不能计算哈希值(列表、字典)
    9. print(hash([1,2,3]))

    也就是列表和字典不可以作为字典的key,其他的类型可以作为字典的key


    列表可以通过append操作发生改变,不可计算hash

    不可变的对象,一般就是可hash的,可变的对象,一般就是不可哈希的

     字典、列表、元组Python中非常常用的内置类型,相比于int,str,float......

    他们内部可以再包含其他元素了,可以称为容器/集合类。

  • 相关阅读:
    正式发布丨VS Code 1.70
    冒死上传,全网最齐全的建模软件都在这
    为什么要选快鲸智慧社区系统?四大突出优势值得信赖
    迁移 sqoop测试环境
    一到汇报思绪乱? 学会这4个模型,高效表达无废话
    华为云认证的售前工程师是什么?
    [自然语言处理] 基于pycorrector实现文本纠错
    4.基础纹理
    JSP自定义标签(foreach标签与select标签的自定义方式)
    三十二、《大数据项目实战之用户行为分析》Spark SQL操作Hive的几种方式
  • 原文地址:https://blog.csdn.net/wxx200008/article/details/127754489