我有一个集合和字典,一个值 = 5
v = s = {'a', 'b', 'c'}
d = {'b':5 //<--new value}
例如,如果字典 d 中的键“b”在 set s 中,那么当我返回 dict 理解时,我想让该值等于新值;如果 set s 中的键不在字典 d 中,则我希望使该值等于新值。所以这是我的代码在 s['b'] = 5 和我的新字典是......
{'a':0, 'b':5, 'c':0}
我写了一个dict理解
{ k:d[k] if k in d else k:0 for k in s}
^
SyntaxError: invalid syntax
为什么?!我很生气它不起作用。如果在python中不是这样,这就是你的做法?
所以对不起大家。对于那些访问过这个页面的人,我最初把 { k:d[k] if k in v else k:0 for k in v} 和 s['b'] = 5 只是我创建的新字典的一个表示一个键 'b' 等于 5,但它不正确,因为你不能像这样迭代一个集合。
所以重申v和s是相等的。它们只是表示向量和集合。