• Python 学习日记 第五天


    日常鸡汤:

      曾经求学所受的苦,将来都会成为建筑美好生活的一块砖


    一、字典的介绍:

      字典(dict)是python中唯一的一个映射类型,以{}括起来的 键值对 {key:value},在此 Key 是唯一的,切必须是可以哈希的,Value没有要求,可以是任何数据类型。为什么要有字典,因为在查询的过程当中,当列表或者元组过于庞大的时候,靠索引定位会显的特别效率低,所以用Key:Value 键值对的形式来寻找会更好一些。

    二、字典的基本操作

    1.增:

     1 # 先定义一个字典
     2 
     3 dic = {}
     4 
     5 dic['name'] = 'abc'         # 向字典中添加一个 'name':'abc'
     6 
     7 # 还有一种方法就是使用setdefault
     8 
     9 dic.setdefault('李嘉诚')      # 向字典添加一个 Key为:'李嘉诚'   Value为None
    10 
    11 dic.setdefault('a','b')        # 向字典添加一个键值对: 'a':'b'    
    12 
    13 
    14 # 当使用setdefault的时候,使用了一个已经存在的Key值,则setdefault不会起作用
    15 
    16 dic.setdefault('a','2')        # 这时候这个字典中键值对还是为  'a' : 'b'

    2.删

    del dic[key]             删除指定的key的键值对,key必须要存在,否则会报错。

    pop(key,default)      删除指定的key的键值对,如果key不纯在,如果default有值,则返回default,如果没有值,则报错,有返回值 Value

    popitem()            删除以key为主导的升序的第一个键值对,返回一个元组(key,value) ,如果字典为空,则会报错

    clear()                      清空字典

     1 dic = {'a':'b','c':'d','e':'f'}              # 创建一个字典
     2 
     3 del dic['a']
     4 print(dic)                                   # 输出 {'c': 'd', 'e': 'f'}
     5 
     6 dic.pop('c')                                 # 用pop方法删除key为‘c’的键值对
     7 print(dic)                                   # 输出{'e': 'f'}
     8 
     9 ret = dic.pop('c',666)                       # 删除一个字典没有的值,会返回666
    10 print(ret)                                   # 输出 666
    11 
    12 raw = dic.popitem()                          # 删除最后一对键值对
    13 print(raw)                                   #  输出('e', 'f')
    14 
    15 dic.clear()                                  # 清空操作
    16 print(dic)                                   # 返回{}

    3.改

    改,只能修改Value的值,不能修改Key

    修改单个键值对: dic[key] = value

    批量修改键值对:olddic.update(newdic)

     1 d = {'name':"sz",'age':18}                     # 创建一个字典
     2 print(d)                                       # 输出为{'name': 'sz', 'age': 18}
     3 d['age']=20                                    # 通过赋值操作更改
     4 print(d)                                       # 输出{'name': 'sz', 'age': 20}
     5 d['a'] = 'b'                                   # 加入key为不存在的值
     6 print(d)                                       # 输出{'name': 'sz', 'age': 20, 'a': 'b'} 则为增加操作
     7 
     8 d1 = {"age":14,'add':'jia'}                    # 定义一个新的列表
     9 d.update(d1)                                   # 把d进行更新。
    10 print(d)                                       # {'name': 'sz', 'age': 14, 'a': 'b', 'add': 'jia'} 
    11                                                # 在更新过程中,如果有相同的键值对,则进行赋值,如果没有,则新添

    4.查

    简单查询

    dict[key]                       直接通过key值进行查询,如果没有相对应的key值,则会报错

    get(key,default)           通过key值进行查询,返回相对应key的value值,如果没有对应的值,不会报错,会返回一个none或者指定的值

    setdefault(key,default)             通过key值查询,返回对应的value值,如果不存在则新增一个键值对        

     1 d = {'name':'lx','age':18}                    # 定义一个字典
     2 print(d['name'])                              # 直接查询
     3 
     4 #get()
     5 v = d.get("age")                              # 查询key为‘age’的键值对
     6 print(v)                                      # 输出18
     7 b = d.get("ac",660)                           # 如果查询的key不存在,返回660
     8 print(b)                                      # 输出660
     9 
    10 # setdefault
    11 c = d.setdefault("age")                       # 查询key为‘age’
    12 print(c)                                      # 输出18
    13 e = d.setdefault('age1',2234)                 # 如果查询没有的key
    14 print(d)                                      #输出 {'name': 'lx', 'age': 18, 'age1': 2234} 新增

    其他操作

    dict.key()                 获取所有的键

    dict.value()              获取所有的值

    dict.items()              获取所有的键值对 返回的是一个元组

    1 d = {'name':'chamster','age':18}
    2 print(d.keys())                      # 输出dict_keys(['name', 'age'])
    3 print(d.values())                    # 输出dict_values(['chamster', 18])
    4 print(d.items())                     # 输出dict_items([('name', 'chamster'), ('age', 18)])

    注意在python2.x的版本中,如果中间对字典进行了增加或者删除的操作,则dict.key()等的值不会改变

    在python3.x的版本中,则会相对应的发生改变

    5.遍历key和value的值

     1 d = {'name':'lx','age':18,'add':'sh'}
     2 for i in d.keys():                     # 遍历 key 遍历value操作一样
     3     print(i)
     4     print(d[i])
     5 
     6 for i in d.items():
     7     print(i[0])
     8     print(i[1])
     9 
    10 for k,v in d.items():               # 通过解包进行遍历
    11     print(k,v)

    6.字典的嵌套

      通过索引就可访问字典中的字典,没什么大的难点

  • 相关阅读:
    菜单代码
    一个三角形证明题
    根号7和根号13的正数部分
    绝对值是大问题,a^2-b^2=2009
    化学
    二次函数错题本:y=ax^2+4ax+3
    大阴线空中加油最厉害!比亚迪等几个分析图
    大阴线空中加油最厉害!比亚迪等几个分析图
    09-使用a标签实现锚链接的两种方法
    08-a超链接标签
  • 原文地址:https://www.cnblogs.com/Chamster/p/9289869.html
Copyright © 2020-2023  润新知