有条件地将值添加到字典中

时间:2016-10-04 10:58:41

标签: python python-3.x dictionary

这是我创建字典的代码:

for table in get_json():
    updated_user_dict = {
        "email": table['email'],
        "company": table['company'],
        "userinfo": if args.u: 
            [update_user(dic, ssh_session)
            for dic in table['userinfo']]
    }

我只想补充一下:

[update_user(dic, ssh_session)
            for dic in table['userinfo']]

如果args.uTrue。例如,如果我有args.c,我想在userinfo添加其他内容。

Python中是否可以这样?

1 个答案:

答案 0 :(得分:0)

字典文字中的键和值可以是任何表达式,因为这样的条件表达式可以很容易地使用。

你只需要小心你如何键入它,值首先,理解中的元组应该总是有括号。

字典值的条件示例:

condition = False    
d = {1: [('a', 'a') for _ in range(2)] if condition else [('b','b') for _ in range(2)]}

conditionFalse因此,d初始化为[('b','b') for _ in range(2)]

{1: [('b', 'b'), ('b', 'b')]}

有两个if条件:

d = {1: [('a', 'a') for _ in range(2)] if condition else [('b','b') for _ in range(2)] if condition else ('c', 'c')}

condition再次False因此使用了('c', 'c')d现在是:{1: ('c', 'c')}

arg.uarg.c代替您需要的值以及类似的方式。

如果需要检查的条件数不是太大,请使用条件表达式在字典文字中初始化。如果没有,使用单独的if-elif-else语句将更具可读性。