zoukankan      html  css  js  c++  java
  • python字典

    简单解释:

      字典: x = {key:value,key:value,...}    其实就是JavaScript的对象

    全面解释:

    # 字典
    # 使用 {} 来创建字典
    d = {} # 创建了一个空字典
    
    # 创建一个保护有数据的字典
    # 语法:
    #   {key:value,key:value,key:value}
    #   字典的值可以是任意对象
    #   字典的键可以是任意的不可变对象(int、str、bool、tuple ...),但是一般我们都会使用str
    #       字典的键是不能重复的,如果出现重复的后边的会替换到前边的
    # d = {'name':'孙悟空' , 'age':18 , 'gender':'男' , 'name':'sunwukong'}
    d = {
    'name':'孙悟空' , 
    'age':18 , 
    'gender':'' , 
    'name':'sunwukong'
    }
    
    # print(d , type(d))
    
    # 需要根据键来获取值
    # print(d['name'],d['age'],d['gender'])
    
    # 如果使用了字典中不存在的键,会报错
    # print(d['hello']) KeyError: 'hello'

     字典的相关操作

    # 创建字典
    # 使用{}
    # 语法:{k1:v1,k2:v2,k3:v3}
    
    # 使用 dict()函数来创建字典
    # 每一个参数都是一个键值对,参数名就是键,参数名就是值(这种方式创建的字典,key都是字符串)
    d = dict(name='孙悟空',age=18,gender='') 
    
    # 也可以将一个包含有双值子序列的序列转换为字典
    # 双值序列,序列中只有两个值,[1,2] ('a',3) 'ab'
    # 子序列,如果序列中的元素也是序列,那么我们就称这个元素为子序列
    # [(1,2),(3,5)]
    d = dict([('name','孙悟饭'),('age',18)])
    # print(d , type(d))
    d = dict(name='孙悟空',age=18,gender='') 
    
    # len() 获取字典中键值对的个数
    # print(len(d))
    
    # in 检查字典中是否包含指定的键
    # not in 检查字典中是否不包含指定的键
    # print('hello' in d)
    
    # 获取字典中的值,根据键来获取值
    # 语法:d[key]
    # print(d['age'])
    
    print(d['name'])
    
    # n = 'name'
    # print(d[n])
    
    # 通过[]来获取值时,如果键不存在,会抛出异常 KeyError
    # get(key[, default]) 该方法用来根据键来获取字典中的值
    #   如果获取的键在字典中不存在,会返回None
    #   也可以指定一个默认值,来作为第二个参数,这样获取不到值时将会返回默认值
    # print(d.get('name'))
    # print(d.get('hello','默认值'))
    
    # 修改字典
    # d[key] = value 如果key存在则覆盖,不存在则添加
    d['name'] = 'sunwukong' # 修改字典的key-value
    d['address'] = '花果山' # 向字典中添加key-value
    
    # print(d)
    # setdefault(key[, default]) 可以用来向字典中添加key-value
    #   如果key已经存在于字典中,则返回key的值,不会对字典做任何操作
    #   如果key不存在,则向字典中添加这个key,并设置value
    result = d.setdefault('name','猪八戒')
    result = d.setdefault('hello','猪八戒')
    
    # print('result =',result)
    # print(d)
    
    # update([other]) 更新添加
    # 将其他的字典中的key-value添加到当前字典中
    # 如果有重复的key,则后边的会替换到当前的
    d = {'a':1,'b':2,'c':3}
    d2 = {'d':4,'e':5,'f':6, 'a':7}
    d.update(d2)
    print(d)
    # print(d)
    # 删除,可以使用 del 来删除字典中的 key-value
    del d['a']
    del d['b']
    
    # popitem()
    # 随机删除字典中的一个键值对,一般都会删除最后一个键值对
    #   删除之后,它会将删除的key-value作为返回值返回
    #   返回的是一个元组,元组中有两个元素,第一个元素是删除的key,第二个是删除的value
    # 当使用popitem()删除一个空字典时,会抛出异常 KeyError: 'popitem(): dictionary is empty'
    # d.popitem()
    # result = d.popitem()
    
    # pop(key[, default])
    # 根据key删除字典中的key-value
    # 会将被删除的value返回!
    # 如果删除不存在的key,会抛出异常
    #   如果指定了默认值,再删除不存在的key时,不会报错,而是直接返回默认值
    result = d.pop('d')
    result = d.pop('z','这是默认值')
    
    # del d['z'] z不存在,报错
    # result = d.popitem()
    # result = d.popitem()
    # result = d.popitem()
    # result = d.popitem()
    
    # clear()用来清空字典
    d.clear()
    
    # print('result =',result)
    # print(d)
    
    # copy()  复制,id不同。
    # 该方法用于对字典进行浅复制
    # 复制以后的对象,和原对象是独立,修改一个不会影响另一个
    # 注意,浅复制会简单复制对象内部的值,如果值也是一个可变对象,这个可变对象不会被复制
    d = {'a':1,'b':2,'c':3}
    d2 = d.copy()
    d3 = d
    # d['a'] = 100
    print('haha',id(d),id(d2),id(d3))
    d = {'a':{'name':'孙悟空','age':18},'b':2,'c':3}
    d2 = d.copy()
    d2['a']['name'] = '猪八戒'
    
    
    print('d = ',d , id(d))
    print('d2 = ',d2 , id(d2))
    
     
  • 相关阅读:
    Vue生命周期总结
    jQuery的层级选择器
    jQuery操作DOM的相关方法
    PHP基本语法
    组件间的传值
    MV*模式
    js 常用事件
    kali使用-WIFI破解
    使用css将网页变成黑白色
    css权重等级
  • 原文地址:https://www.cnblogs.com/FlyingLiao/p/11185887.html
Copyright © 2011-2022 走看看