Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 获取错误“;类型错误:';int';“对象不可编辑”;_Python_Object_Int_Typeerror_Iterable - Fatal编程技术网

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))