如何在创建字典变体时消除冗余

时间:2015-08-22 21:45:51

标签: python dictionary

所以目前我有这样的值,例如:

        values = {
            'order_line_id': order.id,
            'product_id': product.id,
        }

但有条件地,我想在保留先前值的同时添加额外的行,例如:

if field == 0:
     # Add a new line to values

所以我的问题是如何更新我的值而不必复制我当前拥有的值,只需添加一个新行。

我不希望它看起来像这样,但我不确定是否还有其他方式:

if field == 0:
         values = {
            'order_line_id': order.id,
            'product_id': product.id,
            'new_line': line.id
        }
else:
        values = {
            'order_line_id': order.id,
            'product_id': product.id,
        } 

2 个答案:

答案 0 :(得分:4)

构建基本案例,然后有条件地添加额外字段:

values = {
        'order_line_id': order.id,
        'product_id': product.id,
}
if field == 0:
    values['new_line'] = line.id

答案 1 :(得分:1)

您现在拥有的是词典 字典的作用是将映射到'key' : value

values = {
    'order_line_id': order.id,
    'product_id': product.id,
}

因此,在这种情况下:
您的第一个密钥为'order_line_id',其值为order.id。您的第二个密钥为'product_id',而且&# 39; s值为product.id

要添加新的键和值,只需定义键并将其设置为等于它的值:

if field == 0 :
    values['new_key'] = newValue


所以现在如果字段等于0:

print(values)
>>> {'order_line_id': order.id, 'product_id': product.id, 'new_key' : newValue}

如果它没有:

print(values)
>>>{'order_line_id': order.id, 'product_id': product.id}
相关问题