zoukankan      html  css  js  c++  java
  • Python基本类型-字典

    Python中的字典相当于.Net中的Dictionary或Java中的Mapping。它不是序列,而是一种映射。字典存储一系列“key:value”对,key(键)不可重复,value(值)可重复。举个栗子:

    >>>user_info={'name':'张三','age':20,'gender':''}

    我们可以通过键来读取或修改键所对应的值

    >>>user_info['name']
    '张三'
    
    >>>user_info['age']+=1
    >>>user_info
    {'name':'张三','age':21,'gender':''}

    Python中的字典是允许边界外的赋值的,给一个不存在的键赋值,字典会创建该键。

    >>>user_info={}
    >>>user_info['name']='李四'
    >>>user_info['age']=18
    >>>user_info['gender']=''

    >>>user_info {'name':'李四','age':18,'gender':''}

    >>>user_info['name']
    '李四'

    字典的值的类型是不受限制的,我们可以给它列表和字典类型达到嵌套的效果。

    >>>card={
                'num':'007'
                'name':{'first_name':'james','last_name':'bond'}
                'weapons':['gun','hypercar']
           }  
    
    >>>card['name']['first_name']
    'james'
    
    >>>card['weapons'][-1]
    'hypercar'

    作为映射,字典只支持通过键来获取元素,且字典不是序列,字典内的元素并不一定会按照输入的顺序排列。举个栗子:

    >>>D={'a':1,'b':2,'c':3}
    >>>D
    {'a': 1, 'c': 3, 'b': 2}

    然而我们怎么样按键的顺序输出列表内容呢,只能采用曲线救国的方式,先把键存到一个列表中,然后对列表进行排序,最后遍历列表,输出元素。

    >>>list_keys=list(D.keys())
    >>>list_keys
    ['a','c','b']
    
    >>>list_keys.sort()
    >>>list_keys
    ['a','b','c']
    
    >>>for key in list_keys:
           print(key,'=>',D[key])
    a
    => 1 b => 2 c => 3

    最近的Python版本中提供了sorted内置函数,sorted调用返回结果并对各种对象类型进行排序,当然,也可以对字典的键排序。

    >>>for key in sorted(D):
           print(key,'=>',D[key])
    
    a => 1
    b => 2
    c => 3

    判断键或值是否存在于该字典,可以用in或not in来判断

    >>>'f' in D           #D默认为D.keys()
    False
    
    >>>'f' in D.keys()
    False
    
    >>>'a' in D
    True
    
    >>>3 in D.values()
    True
  • 相关阅读:
    一个图层隶属下一个图层
    windows安装Apache,注册服务出现“(OS 5)拒绝访问。 : AH00369: Failed to open the WinNT service manager..."错误
    windows下apache如何完整卸载?
    重设mysql数据库root用户密码
    mysql设置root密码
    mysql服务无法启动
    ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables opt
    亿丰之星 · 声动亚洲
    Euler's Sum of Powers Conjecture
    MATLAB Hacks from Richard Socher
  • 原文地址:https://www.cnblogs.com/On-my-way/p/6908809.html
Copyright © 2011-2022 走看看