几天之后,我仍然无法弄清楚如何在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
答案 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