python--字典

陌路散爱 提交于 2019-11-30 20:46:32

Python基础-字典

为什么需要字典:

有时候我们需要存储一组相关的数据的时候,比如要存储一个人的信息,那么有usernameagebirthday等,如果这些信息都存储在列表中,或者数组中,比如['username','age','birthday']那么用起来可能不是很方便。比较方便的操作是,我直接通过username这个key就可以拿到这个值,我通过username就可以给这个key设置值,那么就可以通过字典的方式实现我们的需求。

字典基础:

  1. 创建字典:我们可以通过两种方式创建字典:

     person = {"username":"zhiliao","age":18}
    

    或者是使用dict函数:

     person = dict(username='zhiliao',age=18)
    
  2. 基本操作:

    • len(d):返回字典的键值对的长度。
    • d[k]:获取k这个key对应的值。
    • d[k] = v:设置键为k的值为v,如果字典中不存在键为k的这一项,那么自动的添加进去。
    • del d[k]:删除d这个字典中键为k的这一项数据。
    • k in d:检查d这个字典中是否包含键为k的这一项。
    • 字典中的键可以是任意的不可变类型,比如:浮点类型、整形、字符串或者元组。

字典常用方法:

  1. clear:清除字典中所有的项。

     a = {'username':'zhiliao','age':18}
     print(a)
     a.clear()
     print(a)
    
  2. get:访问字典中那个键对应的那个值。这个方法不会抛出异常。

     a = {'username':'zhiliao','age':18}
     username = a.get('username')
     print(username)
     city = a.get('city') # 获取到的是一个None。
     # 也可以指定一个,在没有获取到这个值时候的默认值
     city = a.get('city','changsha') # 返changsha
     city = a['city'] # 抛出异常
    
  3. pop:用来获得对应于给定键的值,然后将这个键盘和值的项从字典中删除。会返回这个值。

     d = {'x':1,'y':2}
     d.pop('x')
    
  4. popitem:随机的移除字典中的一项。因为字典是无序的,所以是随机的。

     d = {'username':"zhiliao",'age':18}
     d.popitem() # 随机弹出一个值
    
  5. update:用一个字典更新另外一个字典,如果碰到相同的键,则会覆盖。

     a = {'url':'http://www.baidu.com/','title':"baidu"}
     b = {"url":"http://www.google.com/",'new_value':"new_value"}
     a.update(b)
     print(a)
    
  6. setdefault:如果字典中包含有给定键,则返回该键对应的值,否则返回为该键设置的值,并且会设置值到字典中。

遍历字典:

  1. 遍历字典中所有的key:使用keys方法,这个方法将所有的键以列表的方式返回。

     a = {"url":"www.baidu.com",'title':"baidu"}
     for x in a.keys():
         print(x)
    
  2. 遍历字典中所有的value:使用values方法,这个方法将所有的值以列表的方式返回。

     a = {"url":"www.baidu.com",'title':"baidu"}
     for x in a.values():
         print(x)
    
  3. 遍历字典中所有的键值对:使用items方法,这个方法将所有的键和值以列表的方式返回。

     a = {"url":"www.baidu.com",'title':"baidu"}
     for key,value in a.items():
         print(key)
         print(value)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!