调试Python代码

时间:2015-04-26 10:45:13

标签: python debugging

几天之后,我仍然无法弄清楚如何在python(不是经验丰富的程序员)上完成这项工作。这是粘贴的代码,在底部是预期的结果:

select
    t.c.value('(../TradeId/text())[1]', 'nvarchar(128)') as TradeId,
    t.c.value('local-name(.)', 'nvarchar(128)') as nodeName,
    t.c.value('text()[1]', 'nvarchar(128)') as nodeValue
from  @data.nodes('data/value/*[local-name(.) != "TradeId"]') as t(c)

这是我想要达到的结果:

color_list = ["red", "blue", "orange", "green"]
secuence = ["color", "price"]
car_list = []


def create_list(color_list, secuence, car_list):
    for num in range(len(color_list)):
        car_list.append = dict.fromkeys(secuence)
        car_list[%s]['color'] = color_list[%s] %num    
    return car_list

2 个答案:

答案 0 :(得分:3)

假设'color''price'是常量,您可以针对此特定方案在一行中完成所有操作。

car_list = [{'color': color, 'price': None} for color in color_list]

请参阅list comprehension - 它是一款功能强大的工具。

如果您还有一个价格清单price_list,您可以执行类似的操作:

car_list = [{'color': color, 'price': price} for color, price in zip(color_list, price_list)]

请参阅内置函数zip()

如果字符串'color''price'在执行时未知(我认为不太可能),您可以执行与以下类似的操作

car_list = [{secuence[0]: color, secuence[1]: price} for color, price in zip(color_list, price_list)]

答案 1 :(得分:0)

尝试以下操作我不确定您是否可以使用密钥寻址,但此处我已经使用过它。

def create_list(color_list, secuence, car_list): 
    for each in color_list:
        tmp = dict.fromkeys(secuence)
        tmp['color'] = each
        car_list.append(tmp)
    return car_list