从Python字典中"切割"出一个元素

0 投票
3 回答
4512 浏览
提问于 2025-04-15 23:28

我有一个字典:

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)

撰写回答