Getting error "TypeError: 'int' object is not iterable"
Getting error "TypeError: 'int' object is not iterable"
matrix = [
[3,6,3],
[6,8,5],
[8,5,9],
]
for lists in matrix:
for numbers in lists:
print(max(numbers)
我想编写一个代码来找出矩阵中最大的数字,但是我得到了一个我无法弄清楚的奇怪错误。这是错误
File "C:/Users/AK/PycharmProjects/pythonProject2/main.py", line 9, in <module>
print(max(numbers))
TypeError: 'int' object is not iterable
我该如何解决这个问题?
您的困惑似乎来自变量名称的语义。例如,看看这个:
for lists in matrix:
你的matrix
是一个“列表的列表”,这是真的。那么matrix
里面的每一项都不应该叫“列表”,应该叫“列表”。让我们看看它会将我们带向何方:
for list in matrix:
for numbers in list:
同样的事情。 每个元素不是一个“数字”,而是一个“数字”:
for list in matrix:
for number in list:
print(max(number))
现在问题变得很清楚了。找到一个“数字”的最大值是没有意义的。因为只有一个号。您可以打印号码:
for list in matrix:
for number in list:
print(number)
但是您似乎想要实现的是在每个 list 中找到最大值。回到现在更清晰的语义,你会在 list
对象上这样做:
for list in matrix:
print(max(list))
matrix = [
[3,6,3],
[6,8,5],
[8,5,9],
]
for lists in matrix:
for numbers in lists:
print(max(numbers)
我想编写一个代码来找出矩阵中最大的数字,但是我得到了一个我无法弄清楚的奇怪错误。这是错误
File "C:/Users/AK/PycharmProjects/pythonProject2/main.py", line 9, in <module>
print(max(numbers))
TypeError: 'int' object is not iterable
我该如何解决这个问题?
您的困惑似乎来自变量名称的语义。例如,看看这个:
for lists in matrix:
你的matrix
是一个“列表的列表”,这是真的。那么matrix
里面的每一项都不应该叫“列表”,应该叫“列表”。让我们看看它会将我们带向何方:
for list in matrix:
for numbers in list:
同样的事情。 每个元素不是一个“数字”,而是一个“数字”:
for list in matrix:
for number in list:
print(max(number))
现在问题变得很清楚了。找到一个“数字”的最大值是没有意义的。因为只有一个号。您可以打印号码:
for list in matrix:
for number in list:
print(number)
但是您似乎想要实现的是在每个 list 中找到最大值。回到现在更清晰的语义,你会在 list
对象上这样做:
for list in matrix:
print(max(list))