我正在尝试反转字典。在许多键具有相同值的情况下,新键(旧值)应该与一组新值(旧键)相关联。我解决了这个问题,但我正在尝试使用字典理解和一些辅助方法进行重构。
def has_unique_value(k):
return d.values().count(d[k]) == 1
def keys_with_same_value_as_key(k):
return set([key for key in d.keys() if d[key] == d[k]])
print( {d[k]:k if has_unique_value(k) else d[k]:keys_with_same_value_as_key(k) for k in d.keys()} )
但是,这会引发语法错误
print( {d[k]:k if has_unique_value(k) else d[k]:keys_with_same_value_as_key(k) for k in d} )
^
SyntaxError: invalid syntax
希望该代码中的对齐方式正确。它应该指向子句:
中的第二个 , 。else
知道这里有什么吗?我已经尝试了尽可能多的括号形式。