bool_tuple = [(True, '123X'), (False, '734Y'), (False, '933Z')]
我如何检查所有这些值是否为真/假?我需要显示合适的失败消息。
假设列表中的第二项失败,那么消息应该是:
"Item 734Y is failed"
"Item 933Z is failed"
我怎样才能实现上述场景?
我知道它的带有布尔值的列表是否更简单,但是如何处理带有元组的布尔值?
bool_tuple = [(True, '123X'), (False, '734Y'), (False, '933Z')]
我如何检查所有这些值是否为真/假?我需要显示合适的失败消息。
假设列表中的第二项失败,那么消息应该是:
"Item 734Y is failed"
"Item 933Z is failed"
我怎样才能实现上述场景?
我知道它的带有布尔值的列表是否更简单,但是如何处理带有元组的布尔值?
只需遍历列表:
>>> 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'
好吧,使用 Python 生成器理解很简单:
print "\n".join("Item %s failed" % item for flag, item in bool_tuple if not flag)
如果你暗示当一个项目失败时,那么它后面的所有项目也将失败......只需打破第一个 for 循环并跟踪你打破的 bool_tuple 中的位置。开始另一个循环,从失败位置读取 bool_tuple 到末尾,这将打印失败消息。