这是我创建字典的代码:
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.u
是True
。例如,如果我有args.c
,我想在userinfo
添加其他内容。
Python中是否可以这样?
答案 0 :(得分:0)
字典文字中的键和值可以是任何表达式,因为这样的条件表达式可以很容易地使用。
你只需要小心你如何键入它,值首先,理解中的元组应该总是有括号。
字典值的条件示例:
condition = False
d = {1: [('a', 'a') for _ in range(2)] if condition else [('b','b') for _ in range(2)]}
condition
为False
因此,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.u
和arg.c
代替您需要的值以及类似的方式。
如果需要检查的条件数不是太大,请使用条件表达式在字典文字中初始化。如果没有,使用单独的if-elif-else
语句将更具可读性。