Python的新手遇到测试平等的问题.我有一个列表列表,州[]; 每个状态包含x,在此特定情况下x = 3,布尔值.在我的程序中,我生成一个布尔值列表,其中前三个对应于状态[i].我遍历测试相等性的状态列表(其中一个肯定是正确的,因为所有可能的布尔排列都处于状态,但是从不检测到相等.不知道为什么,这里是我修改的一些代码来测试它:
temp1 = []
for boolean in aggregate:
temp1.append(boolean)
if len(temp1) == len(propositions):
break
print temp1
print states[0]
if temp1 == states[0]:
print 'True'
else:
print 'False'
Run Code Online (Sandbox Code Playgroud)
在这种情况下,propisitons的长度是3.我从这段代码得到的输出是:
[True, True, True]
(True, True, True)
False
Run Code Online (Sandbox Code Playgroud)
我猜这与括号中的差异有关?与状态[0]是列表中的列表这一事实有什么关系?干杯.
我在上学的Python项目遇到一些麻烦。我对Python的经验很少,这给我确定如何准确解决此问题带来了麻烦。
我需要创建2 ^ n布尔值的布尔值的所有可能状态(组合)。
因此,对于n = 3,我需要表示:
(True, False, False)(True, True, False)(True, True, True)
etc。最多所有8种组合。
但是我真的不知道如何在python中执行此操作。我知道必须有嵌套的for循环,并且我会将组合表示为列表列表,但这就是我想出的全部。有什么帮助吗?