0

我有一个这样的列表列表:

面包棒 = [["name1", 45, 140]["name2", 85, 95]]

大列表中每个列表中的第三个(或 no[2​​])元素是用户给定变量的计算结果,不能高于 80。如果高于 80,我需要返回错误消息而不是打印计算结果。

到目前为止我已经尝试过:

i = 0
while i <= len(breadsticks):
     if breadsticks[i][2] > 80:
         print("you have entered too many breadcrums")
     elif i == len(breadsticks):
         for bread in breadsticks:
              print(breadsticks[bread][2])
     i += 1

我这样做的尝试不仅不起作用,而且也很笨拙。有没有其他流畅的方法来提供错误消息来阻止这样的事情?

4

1 回答 1

1

使用带有生成器表达式的any()函数来测试每个嵌套列表:

if any(bread[2] > 80 for bread in breadsticks):
    print("You have entered too many breadcrumbs")

这只会根据需要测试尽可能多的嵌套列表,以找到测试所针对的任何列表True

请注意,直接breadsticks循环中循环更简单:

for bread in breadsticks:
    print(bread[2])
于 2013-08-26T21:59:02.627 回答