zoukankan      html  css  js  c++  java
  • python 中字典的操作(增、删、改、查)

    字典是另一种可变容器模型,且可存储任意类型对象,下标从0开始,最后一个为-1。

    字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:

    d = {key1 : value1, key2 : value2 }

    键必须是唯一的,但值则不必,字典是无序的。

    值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

    一个简单的字典实例:

    dict = {'aaa': '23', 'bb': '882', 'ccc': '2358'}

    也可如此创建字典:

    dict1 = { 'ddd': 1234 };
    dict2 = { 'ddd': 1235, 98.6: 37 };

    1. 增加

    d['height'] = 170
    d.setdefault('age','21') #显示d这个字典的'age'值的内容,因为字典有,所以不会去设置它
     1 #字典: key-value, 取值方便,速度快,key不能重复
     2 d = {'name':'nancy',
     3      'age':'20',
     4      'sex':'female',
     5      'addr': 'nb'
     6      }
     7 #增加
     8 d['height'] = 170
     9 print(d) # -> {'sex': 'female', 'age': '20', 'name': 'nancy', 'height': 170, 'addr': 'nb'}
    10 #字典是无序的
    11 value = d.setdefault('age','21') #显示d这个字典的'age'值的内容,因为字典有,所以不会去设置它
    12 print(value) # 20
    13 value1 = d.setdefault('weight',98) ##显示d这个字典的'weight'值的内容,因为字典没有,所以设置为98了
    14 print(value1) #-> 98
    15 print(d) # -> {'height': 170, 'name': 'nancy', 'age': '20', 'addr': 'nb', 'sex': 'female', 'weight': 98}

    2. 删除

    d.pop('height')#删除某个key,这个比较常用
    d.popitem() # 随机删除一个
    del d['name']#删除某个key
    d.clear()#清空字典
     1 #字典: key-value, 取值方便,速度快,key不能重复
     2 d = {'name':'nancy',
     3      'age':'20',
     4      'sex':'female',
     5      'addr': 'China',
     6      'height': '180'
     7      }
     8 #删除
     9 d.pop('height')#删除某个key,这个比较常用
    10 print(d) # -> {'sex': 'female', 'age': '20', 'name': 'nancy', 'addr': 'China'}
    11 d.popitem() # 随机删除一个
    12 print(d) #-> {'age': '20', 'name': 'nancy', 'addr': 'China'}
    13 del d['name']#删除某个key
    14 print(d) # -> {'sex': 'female', 'addr': 'China'}
    15 d.clear()#清空字典
    16 print(d) # -> {}

    3. 修改

    d['height'] = 170 #如果key 存在的话,修改它的值,如果不存在的话新增
     1 #字典: key-value, 取值方便,速度快,key不能重复
     2 d = {'name':'nancy',
     3      'age':'20',
     4      'sex':'female',
     5      'addr': 'China',
     6      'height': '180'
     7      }
     8 #修改
     9 d['height'] = 170 #如果key 存在的话,修改它的值,如果不存在的话新增
    10 print(d) # -> {'addr': 'China', 'name': 'nancy', 'height': 170, 'age': '20', 'sex': 'female'}

    4. 查看

    通过方括号[]取值查看

     1 #字典: key-value, 取值方便,速度快,key不能重复
     2 d = {'name':'nancy',
     3      'age':'20',
     4      'sex':'female',
     5      'addr': 'China',
     6      'height': '180'
     7      }
     8 #查看
     9 print(d['name'])#如果写了不存在的key,会报错 -> nancy
    10 print(d['age']) # -> 20
    11 print(d.get('addr')) # -> China
    12 print(d.get('addr1'))#如果get()不到的话,返回None -> None
    13 print(d.get('addr2','找不到')) # -> 找不到
    14 print(d.keys())#取得所有的key  -> dict_keys(['age', 'addr', 'height', 'name', 'sex'])
    15 print(d.values())#获得所有的value -> dict_values(['20', 'China', '180', 'nancy', 'female'])
    16 #d.has_key('addr')#python2 里面有这个方法,python3里没有
    17 if 'addr' in d: #判断key 是否在这个字典里
    18     print('addr') # -> addr
    19 #if 'addr' in d.keys():
     1 for k in d: #取到key
     2     print(k) # 打印所有的key值
     3 
     4 print(d.items())#是把字典的key,value 转成一个二维数组(实际上不是真的二维数组,要使用需强制转换),性能不好
     5 # -> dict_items([('height', '180'), ('sex', 'female'), ('addr', 'China'), ('age', '20'), ('name', 'nancy')])
     6 res = list(d.items())
     7 print(res[0]) # ->('height','180')
     8 
     9 for k,v in d.items():#可以同时把key 和value 取出来
    10     print(k,v) 
    11 #height 180
    12 #sex female
    13 #addr China
    14 #age 20
    15 #name nancy
    16 
    17 for k in d:#性能好,保留了字典原有的特性
    18     print(k,d.get(k))
    19 # height 180
    20 # sex female
    21 # addr China
    22 # age 20
    23 # name nancy
  • 相关阅读:
    Spring框架学习09——基于AspectJ的AOP开发
    Spring框架学习08——自动代理方式实现AOP
    Spring框架学习07——基于传统代理类的AOP实现
    Spring框架学习06——AOP底层实现原理
    Spring框架学习05——AOP相关术语详解
    SpringMVC框架09——@ResponseBody的用法详解
    Spring框架学习04——复杂类型的属性注入
    Spring框架学习03——Spring Bean 的详解
    Spring框架学习01——使用IDEA开发Spring程序
    sqlserver 迁移
  • 原文地址:https://www.cnblogs.com/nancyzhu/p/8127288.html
Copyright © 2011-2022 走看看