0
bool_tuple = [(True, '123X'), (False, '734Y'), (False, '933Z')]

我如何检查所有这些值是否为真/假?我需要显示合适的失败消息。

假设列表中的第二项失败,那么消息应该是:

"Item 734Y is failed"
"Item 933Z is failed"

我怎样才能实现上述场景?

我知道它的带有布尔值的列表是否更简单,但是如何处理带有元组的布尔值?

带有列表项的布尔值

4

3 回答 3

3

只需遍历列表:

>>> bool_tuple = [(True, '123X'), (False, '734Y'), (False, '933Z')]
for b, val in bool_tuple:
    if not b:
        print "Item {} failed".format(val)
...         
Item 734Y failed
Item 933Z failed

在哪里b, val进行序列解包,即为每个项目bool_tuple分配布尔值b和项目val

>>> b, val = (True, '123X')
>>> b
True
>>> val
'123X'
于 2013-08-19T11:48:12.217 回答
2

好吧,使用 Python 生成器理解很简单:

print "\n".join("Item %s failed" % item for flag, item in bool_tuple if not flag)
于 2013-08-19T12:25:43.143 回答
0

如果你暗示当一个项目失败时,那么它后面的所有项目也将失败......只需打破第一个 for 循环并跟踪你打破的 bool_tuple 中的位置。开始另一个循环,从失败位置读取 bool_tuple 到末尾,这将打印失败消息。

于 2013-08-19T11:51:59.470 回答