Python:如何在for中解压多个值?

Python:如何在for中解压多个值?,python,list,for-loop,unpack,Python,List,For Loop,Unpack,我正在尝试将两个值解压缩为: def getDiagonal(self): diagonal = [(r, c) for (r,c) in range(0, len(self.matrix)), range(0, len(self.matrix[0]))] return diagonal 并给出了这个错误: Traceback (most recent call last): File "matrixModule.py", line 4, in <module

我正在尝试将两个值解压缩为:

def getDiagonal(self):
    diagonal = [(r, c) for (r,c) in range(0, len(self.matrix)), range(0, len(self.matrix[0]))]
    return diagonal
并给出了这个错误:

    Traceback (most recent call last):
  File "matrixModule.py", line 4, in <module>
    print m.getDiagonal()
  File "C:\Users\Capinzal\Google Drive\ProgramaþÒo\Matrix\matrix.py", line 46, in getDiagonal
    diagonal = [(r, c) for (r,c) in range(0, len(self.matrix)), range(0, len(self.matrix[0]))]
ValueError: too many values to unpack
回溯(最近一次呼叫最后一次):
文件“matrixModule.py”,第4行,在
打印m.getDiagonal()
文件“C:\Users\Capinzal\Google Drive\ProgramaþÒo\Matrix\Matrix.py”,第46行,在getDiagonal中
对角线=[(r,c)表示范围(0,len(self.matrix)),范围(0,len(self.matrix[0]))]
ValueError:要解压缩的值太多
zip()

这就是说,如果您只需要
元组
,尽管您仍然需要
zip()

您还可以省略
范围
对象的
0
,因为这是默认的开始值。如果要指定自定义步长值,则需要它。

With
zip()

这就是说,如果您只需要
元组
,尽管您仍然需要
zip()

您还可以省略
范围
对象的
0
,因为这是默认的开始值。如果要指定自定义步长值,则需要它。

With
zip()

这就是说,如果您只需要
元组
,尽管您仍然需要
zip()

您还可以省略
范围
对象的
0
,因为这是默认的开始值。如果要指定自定义步长值,则需要它。

With
zip()

这就是说,如果您只需要
元组
,尽管您仍然需要
zip()


您还可以省略
范围
对象的
0
,因为这是默认的开始值。如果要指定自定义步长值,则需要它。

在尝试将其设为一行之前,是否尝试将其分解为更简单的循环,以便更轻松地进行故障排除?从外观上看,您不太了解嵌套循环在列表理解中是如何工作的。您是否尝试过将其分解为一个更简单的循环,以便在尝试将其变成一行之前更容易进行故障排除?从外观上看,您不太了解嵌套循环在列表理解中是如何工作的。您是否尝试过将其分解为一个更简单的循环,以便在尝试将其变成一行之前更容易进行故障排除?从外观上看,您不太了解嵌套循环在列表理解中是如何工作的。您是否尝试过将其分解为一个更简单的循环,以便在尝试将其变成一行之前更容易进行故障排除?从外观上看,您不太了解嵌套循环在列表理解中是如何工作的。
diagonal = [(r, c) for (r,c) in zip(range(len(self.matrix)), range(len(self.matrix[0])))]
diagonal = list(zip(range(len(self.matrix)), range(len(self.matrix[0]))))