【发布时间】:2021-03-05 06:31:46
【问题描述】:
我正在尝试使用表达式的变量创建布尔字典。因此,如果表达式 1 具有变量 {x,y,z},我可以创建一个字典,该字典在生成时会返回类似 {'x': True, 'y': True, 'z': True}, {'x': False, 'y': True, 'z': True} ... etc
但我真的很挣扎,因为这个函数需要处理不同变量的集合/(也许我应该将它们放入列表?),所以对于 {x},字典将是 {'x' : True}, {'x' : False}
到目前为止,我正在尝试类似
的代码def dicx(self):
for i in self.vars():
dicxow = { i : True for i in self.vars() }
dicxow1 = dicxow.copy()
dicxow1 = {i : False for i in self.vars() }
return dicxow, dicxow1
其中self.vars() 返回表达式中的所有变量。
我不知道从哪里开始,因为我不知道如何为每个不同的变量只更改字典的一部分,所以任何提示都将不胜感激。我的任务包括使用类,所以我使用类来执行此操作(我不确定这是否会有所不同)。
编辑:
好的,抱歉,所以我只想为 x 个变量创建一个包含 True 和 False 的所有可能组合的字典,但我正在努力这样做。 self.vars() 从表达式中返回一组变量,例如{x,y} 并且我想创建一个函数来为 x 和 y 生成 True 和 False 的每个组合。
【问题讨论】:
-
你的任务没有意义?你什么时候想要它是假的,你什么时候想要它是真的?,你所做的只是制作一个具有相反值的类似字典......
-
self.vars() 是一本字典,对吧?您想使用键还是值?我没有完全理解你的问题。
-
为什么是外循环?
for i in self.vars():。这也是无用的dicxow1 = dicxow.copy(),因为您正在覆盖下一行的 ref -
对不起 - 我刚刚编辑以澄清我正在尝试做的事情。我一开始尝试使用外部循环,但在 dicxow 中没有“for i in self.vars()”,但它无法正常工作。
标签: python dictionary set