【问题标题】:Building a set of records incrementally as app progresses随着应用程序的进展逐步建立一组记录
【发布时间】:2012-04-28 01:31:10
【问题描述】:

我有一个系统管理员类型的 CLI 应用程序,它从配置文件中读取信息。我无法更改以下配置文件的格式。

TYPE_A = "value1,value2,value2"
TYPE_A = "value3,value4,value5"
TYPE_B = "valuex,valuey,valuez"

基于TYPE,我需要对每一个进行一些初始处理。完成所有步骤后,我需要进行一些额外的处理,并根据选择的选项打印状态和预期的操作或执行这些操作。

我想将配置初始解析为字典列表的字典,并使用所有相关信息更新TYPE_ATYPE_BTYPE_C 等的每个实例。然后打印完整状态或执行操作(如果某些状态不正确,则失败)

我的想法是它看起来像:

dict
    TYPE_A_list
        dict_A[0] key:value,key:value,key:value
        dict_A[1] key:value,key:value,key:value
    TYPE_B_list
        dict_A[0] key:value,key:value,key:value
        dict_A[1] key:value,key:value,key:value

我想我想将配置读入其中,然后随着应用程序的进展添加键和值或更新值并重新处理每个 TYPE。

最后是我的问题。

  1. 我不确定如何迭代每个 dicts 列表或添加列表元素以及添加或更新键:值对。
  2. 我上面描述的方法是解决此问题的最佳方法吗?

我对 Python 还很陌生,所以我愿意接受任何建议。 FWIW,这将是 python 2.6。

关于配置文件行的一点说明

CAR_TYPE = "福特,野马,蓝色,2005" CAR_TYPE = "本田,雅阁,绿色,2009" BIKE_TYPE = "本田,VTX,黑色,2006" BIKE_TYPE = "Harley,Sportster,Red,2010" TIRE_TYPE = "170R15,白墙" 每种类型将具有相同的顺序和数量的值。

【问题讨论】:

    标签: python data-structures


    【解决方案1】:

    无需“记住”有两个不同的 TYPE_A 分配 - 您可以将它们组合起来。

    TYPE_A = "value1,value2,value2"
    TYPE_A = "value3,value4,value5"
    

    将被解析为其中之一,或两者都解析,取决于您的系统管理员 CLI 应用程序的实现。

    那么数据模型应该是:

    dict
        TYPE_A: list(value1, value2, value3)
        TYPE_B: list(valuex, valuey, valuez)
    

    这样,您可以很容易地遍历dict.items()

    for _type, values in dict.items():
        for value in values:
            print "%s: %s" % (_type, value)
            # or whatever you wish to do
    

    【讨论】:

    • 我需要将它们分开。就像上面的说明一样,我认为每一行都是 TYPE 的一组值。 "类型、值、值、值"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-14
    • 1970-01-01
    • 1970-01-01
    • 2016-03-07
    • 1970-01-01
    • 2019-06-14
    • 1970-01-01
    相关资源
    最近更新 更多