3 回答
TA贡献1829条经验 获得超13个赞
假设 b 是字典,条件不是多余的。下面引用一个例子
b={'a':1,'b':1}
在这里,两个条件都为真,因为 1)'a' in b 表示如果键 'a' 存在 & 2) b['a'] 表示如果键 'a' 处的值不是 None/0,即真的
b={'a':None}
在这里,第一个条件为真,因为存在键“a”,但第二个条件为假,因为“a”处的值为 None
TA贡献1817条经验 获得超6个赞
如果b
是非整数数组,b['a']
则将不起作用。 b['a']
基本上是要求访问 b 列表的“a”元素。如果 a 不是 int 它将不起作用。
即使 a 是一个整数, b[a] 也不同于检查元素 a 是否在列表 b 中。
如果你的要求是检查列表b中是否存在元素a,
if 'a' in b: some code
工作得很好。
TA贡献2036条经验 获得超8个赞
我不明白你想用 b['a'] 实现什么。你能向我们展示更多你的代码吗?是ba字典吗?如果是,那么“如果'a' in b”不正确,你应该使用b.keys(),如果'a'应该是一个键,b.values(),如果'a'应该是一个值,或者 b.items() 如果两者都可以的话。如果它 b['a'] 应该是字典的一个元素,它应该在布尔上下文中评估为 True 或 False。(对于 int 或 float,0 的计算结果为 False,而任何其他值的计算结果为 True。对于字符串,空字符串的计算结果为 False,而任何其他值的计算结果为 True。对于列表、元组、字典或集合,如果它为空,则它'将评估为 False,如果它包含一项或多项,它将评估为 True。)
如果 b 是字符串,则 b['a'] 没有意义,它既不能计算为 True 也不能计算为 False。
添加回答
举报