调试 Python 代码

Debugging Python code

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

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

这是我想要达到的结果:

>> car_list
[{'color': 'red', 'price': None},{'color': 'blue', 'price': None},{'color': 'orange', 'price': None},{'color': 'green', 'price': None}]

假设 '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)]

尝试以下操作 我不确定您是否可以使用密钥寻址,但我在这里使用了它。

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