【发布时间】:2012-02-08 00:45:12
【问题描述】:
我有一个标准名称列表
standard = ["Richard","Robert","Nicolas"]
还有一个别名字典(在这种情况下是昵称)
aliases = {standard[0]:["Richard","Rick","Dick","Rich"],
standard[1]:["Robert","Roberto","Bob"],
standard[2]:["Nicolas","Nick","Nic"]}
我想制作一个新字典,我可以将任何别名作为键放入其中,它将返回标准名称 AKA 交换键和值
到目前为止,我唯一的猜测是这个
t = {}
aliases = [t.update(zip(v,[k]*len(v))) for k,v in aliases.items()]
aliases = t
有没有更简洁或更易读的方法来做到这一点(id 不喜欢临时字典 t)。
【问题讨论】:
-
只有在您确实需要列表时才应使用列表推导式。在您的代码中,该列表由
None值组成,显然没有用。将这样的列表推导式转换为简单的 for 循环可以使代码更具可读性。
标签: python dictionary nested