• 字典


    字典

    字典特性: 字典是无序的,key必须是唯一的

    • 创建字典
      >>> d = {'name':'lily','age':22}
      >>> d = dict({'name':'lily','age':22})
      >>> d = dict([('two', 2), ('one', 1), ('three', 3)])
      >>> d=dict(k1='aaa',k2='bbb')
      >>> d= dict(zip(['one', 'two', 'three'], [1, 2, 3]))
    • 索引    dic['name']
    • 新增    dic['info']='girl'  
    • 删除    dic.pop('info)
    • 循环    
    • 长度  len(dic)
    • 键,值,键值对  dic.keys()    dic.values()  dic.items()
       |  clear(...)    # 清空字典
       |  
       |  copy(...)    #拷贝
       |      D.copy() -> a shallow copy of D
       |  
       |  fromkeys(iterable, value=None, /) #创建新字典.以序列seq中元素做字典的键,value为字典所有键对应的初始值
       |        

               >>> dict1=dict1.fromkeys(range(1,3),'val')
               >>> dict1
                  {1: 'val', 2: 'val'}

            >>> seq=(1,2,3)
             >>> d={}
             >>> d.fromkeys(seq,10)
              {1: 10, 2: 10, 3: 10}
       |
       |  get(...)    #根据key获取值,如果k不存在默认返回none,如果设置了k,v 则返回v ,不改变dic
       |      >>> dic = {'age': 22, 'name': 'lily'}
              >>> dic.get('name','bao')
              'lily'
              >>> dic.get('info','girl')
              'girl'
              >>> dic
               {'age': 22, 'name': 'lily'}
       |  
       |  items(...)  #所有项的列表形式
       |      D.items() -> a set-like object providing a view on D's items
       |  
       |  keys(...)    #所有的key列表
       |      >>> dic.keys()
               dict_keys(['age', 'name']) 
      
       |  pop(...)   #删除
       |      >>> dic.pop('info')
               'girl'
       |  
       |  popitem(...)   #随机删除
       |     
       |  setdefault(...)   #如果key不存在, 则创建,如果存在,则返回已存在的值且不修改
       |      >>> dic = {'age': 22, 'name': 'lily'}
              >>> dic.setdefault('age',10)
                22
              >>> dic.setdefault('info','girl')
               'girl'
              >>> dic
                {'age': 22, 'name': 'lily', 'info': 'girl'}
       |  
       |  values(...)  #所有的value列表
       |     >>> dic.values()
              dict_values([22, 'lily'])
      
       |  update(...)   #把dic2更新到dic里面去
      >>> dic =  {'name': 'lily', 'age': 22}
      >>> dic.update({'gender':'girl'})
      >>> dic
      {'name': 'lily', 'age': 22, 'gender': 'girl'}
         

     itervalues()方法

    迭代字典的value     values()  itervalues()方法

    迭代字典的k,v     items()  iteritems()

    d = { 'Adam': 95, 'Lisa': 85}
    print d.values()
    # [85, 95]    #values()把value转化成一个列表
    for v in d.values():
        print v
    85
    95
    
    dict除了values()方法外,还有一个 itervalues() 方法,用 itervalues() 方法替代 values() 方法,迭代效果完全一样:
    
    print d.itervalues()
    # <dictionary-valueiterator object at 0x106adbb50>
    for v in d.itervalues():
        print v
    85
    95
    说明: values() 方法实际上把一个 dict 转换成了包含 value 的list。
    但是 itervalues() 方法不会转换,所以 itervalues() 方法比 values()方法节省了生成 list 所需的内存


    统计列表里面不同值的个数

    >>> l=['a','a','b','b','c']
    >>> d={}
    >>> for i in l:
    ...     d.setdefault(i,0)
    ...     d[i] += 1
    ... 
    0
    1
    0
    1
    0
    >>> d
    {'a': 2, 'b': 2, 'c': 1}
    '''
    需求:
    可依次选择进入各子菜单
    可从任意一层往回退到上一层
    可从任意一层退出程序
    所需新知识点:列表、字典
    '''
    menu = {
        '北京': {
            '海淀': {
                '五道口': {
                    'soho': {},
                    '网易': {},
                    'google': {}
                },
                '中关村': {
                    '爱奇艺': {},
                    '汽车之家': {},
                    'youku': {},
                },
                '上地': {
                    '百度': {},
                },
            },
            '昌平': {
                '沙河': {
                    '老男孩': {},
                    '北航': {},
                },
                '天通苑': {},
                '回龙观': {},
            },
            '朝阳': {},
            '东城': {},
        },
        '上海': {
            '闵行': {
                "人民广场": {
                    '炸鸡店': {}
                }
            },
            '闸北': {
                '火车站': {
                    '携程': {}
                }
            },
            '浦东': {},
        },
        '山东': {},
    }
    curr_menu = menu
    m_list = []
    while True:
        for i in curr_menu:   # 列出一级目录
            print(i)
        menu1 = input(">>>")
        if menu1 in curr_menu:     #输入目录名时,进入二级目录
            m_list.append(curr_menu)   # 将此目录的二级所有信息存入m_list,循环..依次存入三级,四级..
            #print("curr_menu:",curr_menu)
            curr_menu = curr_menu[menu1]   #将二级目录变为一级目录
        elif  menu1 == 'f':          # 输入f 时,返回上一级目录
            if len(m_list) != 0:   
                curr_menu = m_list.pop()
            else:
                print("已到达顶级目录,按q可退出")
        elif menu1 == "q":      # 输入q时,直接退出程序
            print("程序退出")
            break
        else:        #否则,提示
            print("您的输入不正确,请重新输入")
    三级菜单作业
  • 相关阅读:
    如何安装一个高可用K3s集群?
    如何设置一个生产级别的高可用etcd集群
    从架构到部署,全面了解K3s
    这应该是最适合国内用户的K3s HA方案
    在K3s上使用Kong网关插件,开启K3s的无限可能!
    AngularJS 遗留项目的升级改造之路(一)
    Rancher首席架构师解读Fleet:它何以管理百万集群?
    资深首席架构师预测:2021年云计算的8个首要趋势
    简单4步,利用Prometheus Operator实现自定义指标监控
    当年,我的架构师之路差点完蛋,幸亏了它
  • 原文地址:https://www.cnblogs.com/xiaobaozi-95/p/8718518.html
Copyright © 2020-2023  润新知