Python 获取错误“;类型错误:';int';“对象不可编辑”;
我想编写一个代码来找出矩阵中的最大数,但是我却遇到了一个奇怪的错误,我无法找出它。这是错误Python 获取错误“;类型错误:';int';“对象不可编辑”;,python,object,int,typeerror,iterable,Python,Object,Int,Typeerror,Iterable,我想编写一个代码来找出矩阵中的最大数,但是我却遇到了一个奇怪的错误,我无法找出它。这是错误 matrix = [ [3,6,3], [6,8,5], [8,5,9], ] for lists in matrix: for numbers in lists: print(max(numbers) 文件“C:/Users/AK/PycharmProjects/pythonProject2/main.py”,第9行,在 打印(最大(数字))
matrix = [
[3,6,3],
[6,8,5],
[8,5,9],
]
for lists in matrix:
for numbers in lists:
print(max(numbers)
文件“C:/Users/AK/PycharmProjects/pythonProject2/main.py”,第9行,在
打印(最大(数字))
TypeError:“int”对象不可编辑
我可以试着解决这个问题吗?您的困惑似乎来自变量名的语义。例如,请看以下内容:
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:
同样的事情。每个元素不是一个“数字”,而是一个“数字”:
现在问题变得清楚了。找到“数字”的最大值是没有意义的。因为只有一个号码。您可以打印号码:
for list in matrix:
for number in list:
print(max(number))
但你似乎想要达到的是在每个列表中找到最大值。回到现在更加清晰的语义,您可以在列表上执行该操作
for list in matrix:
for number in list:
print(number)
列表
是矩阵的一行<代码>数字
是一行中的一个整数max(numbers)
没有意义,因为numbers
是一个整数。只需删除嵌套的for循环并使用print(max(list))
。我认为你想要达到的目标
for list in matrix:
for number in list:
print(number)
for list in matrix:
print(max(list))