我有一本字典:
D = { "foo" : "bar", "baz" : "bip" }
我想创建一个新字典,其中包含其中一个元素k
的副本。如果是k = "baz"
:
R = { "baz" : "bip" }
我现在得到的是:
R = { k : D[k] }
但在我的情况下,k
是一个复杂的表达式,我有一大堆这些。暂时缓存k
看起来和原始选项一样难看。
我正在寻找的是一种更好(更清洁)的方法。
答案 0 :(得分:3)
def take(dictionary, key):
return {key: dictionary[key]}
R = take(D, k)
答案 1 :(得分:1)
你不能比你拥有的更“干净”。假设你的清洁定义是更少的字符。
添加一个函数调用来完成这么简单的任务似乎会让你的代码混淆而不是让它变得更干净。
如果您对clean的定义更具可读性,那么为您的词典提供描述性名称(以及在命名约定中遵循PEP-8)应该这样做。
答案 2 :(得分:0)
不管怎样,你需要一组项目来“切片”出来。
S = set(["baz"])
如果您有上面的Set S,您可以在D上进行字典理解以获得R:
R = dict((k,v) for k,v in D.items() if k in S)