zoukankan      html  css  js  c++  java
  • 关于压栈的一个案例

    msg = '''
    有⼀个数据结构如下所⽰,请编写⼀个函数从该结构数据中返回由指定的字段和对应的值组成的字
    典。如果指定字段不存在,则跳过该字段。(10分)
    data:{"time":"2016-08-05T13:13:05",
    "some_id":"ID1234",
    "grp1":{ "fld1":1,
    "fld2":2},
    "xxx2":{ "fld3":0,
    "fld5":0.4},
    "fld6":11,
    "fld7":7,
    "fld46":8}
    fields:由"|"连接的以"fld"开头的字符串,如:fld2|fld3|fld7|fld19
    def select(data,fields):
    # TODO:implementation
    return result

    def select(data,fields):
    fields_lst = fields.split(‘|’)
    for key in data:
    if type(data[key]) == dict:
    pass
    return result
    '''

    print(msg)

    mydict ={"data":{"time":"2016-08-05T13:13:05",
    "some_id":"ID1234",
    "grp1":{ "fld1":1,
    "fld2":2},
    "xxx2":{ "fld3":0,
    "fld5":0.4},
    "fld6":11,
    "fld7":7,
    "fld46":8}}


    fields = 'fld2|fld3|fld7|fld19'

    def wenwa(datadict,fields):

    fieldslist = fields.split('|')

    answerdict = {}

    l = [mydict]

    while l:

    data = l.pop()

    for wenwa in data:

    if type(data[wenwa])==dict: #如果对应字典值的数据类型还是字典:则扔回列表中接着拆

    l.append(data[wenwa])

    else:

    if wenwa in fieldslist:

    answerdict[wenwa]=data[wenwa]



    print("这里是%s"%answerdict)


    wenwa(mydict,fields)


    #和晓强分享这道题的目的是:

    # 首先,while循环的条件居然破天荒的是一个列表!鬼知道,列表怎么还能当作循环条件

    #其二,代码使用了压栈的思想,这对神圣丁来说是第一次!

    #其三,for循环中,第55行-63行灵活的用单一变量,再现了字典中的两种数据类型,键和值,这是最引人注目的!

    #要是换做神圣丁,一定会十分笨拙的写为 for key in data.keys() ,for value in data.values()

    #最值得大书特书的是l = list(mydict)的使用,整个字典被当作列表,不断被弹出pop().对于弹出的部分,进行类型判别,各归其主

    #单一的值,根据对应的键加入resultlist(当然这些值的前提是,fieldslist里请求的),对于那些嵌套的数据类型,则会被重新丢进列表l[]进行判断

    #整个过程就像是脱粒机在工作

  • 相关阅读:
    FTPClient FTPFile 找不到符号
    1.4 Spring 依赖注入(DI)和控制反转(IOC)详解
    1.3使用marven Spring项目快速搭建
    1.1Spring历史发展和模块定义
    @Component、@Service、@Controller、@Rrepository说明
    打板炒股方法
    性能测试Jmeter扩展学习-添加自定义函数
    性能测试day07_性能瓶颈和分析
    性能测试day06_需求设计的学习(性能重中之重,思维方向永远重于工具)
    性能监控扩展篇(grafana + influxdb + telegraf)
  • 原文地址:https://www.cnblogs.com/saintdingspage/p/7800930.html
Copyright © 2011-2022 走看看