从Python字典中"切割"出一个元素
我有一个字典:
D = { "foo" : "bar", "baz" : "bip" }
我想创建一个新的字典,这个字典里有一个元素的副本,那个元素的键是 k
。所以如果 k = "baz"
:
R = { "baz" : "bip" }
现在我得到的是:
R = { k : D[k] }
但是在我的情况下,k
是一个复杂的表达式,而且我有一大堆这样的表达式。把 k
暂时存储起来看起来和原来的方法一样麻烦。
我想要的是一种更好(更简洁)的做法。
3 个回答
0
无论如何,你都需要一组东西来进行“切片”。
S = set(["baz"])
如果你有上面提到的集合 S,你可以对字典 D 进行一种叫做字典推导的操作,来得到结果 R:
R = dict((k,v) for k,v in D.items() if k in S)
1
你现在的代码已经很“干净”了,假设你认为干净就是字符更少。
为了这么简单的任务加一个函数调用,似乎会让你的代码更混乱,而不是更整洁。
如果你认为干净是指更易读,那给你的字典起一些描述性的名字(并遵循PEP-8的命名规范)就可以了。
3
这段代码是用来做某些操作的,但具体的功能和用途需要根据上下文来理解。通常情况下,代码块里会包含一些指令或者函数,这些指令会告诉计算机该怎么做。
如果你看到这样的代码块,通常意味着这里有一些重要的代码需要你关注。理解这些代码的意义,可以帮助你更好地掌握编程的基本概念。
记住,编程就像给计算机下指令,代码块就是这些指令的集合。通过学习和实践,你会逐渐明白每一行代码的作用。
def take(dictionary, key):
return {key: dictionary[key]}
R = take(D, k)