在Python中打印2D列表的对角线
Python是一种高级且多功能的编程语言,开发人员通常更喜欢使用它,并且广泛用于通过机器学习和数据科学进行数据分析。它提供了处理数据的各种特性,在本文中,我们将学习如何打印2D列表的对角线。这是一个基本的任务,并且可以使用不同的方法高效地实现。
打印2D列表的对角线
在开始打印2D列表的对角线之前,我们需要了解如何表示对角线。对角线由元素组成,指的是从左上角到右下角元素的连线上的那些元素。对角线元素的基本语法如下所示,
语法
[D1 0 0]
[0 D2 0]
[0 0 D3]
上述矩阵的对角线是{D1,D2,D3}。清晰定义主对角线和副对角线的最佳方式是通过给出示例。
[D1 0 D2]
[0 D3 0]
[D4 0 D5]
主对角线元素为D1,D3,D5
次对角线元素为D2,D3,D4
方法
- 方法1−使用函数定义打印主对角线。
-
方法2−使用函数定义打印次对角线。
方法1:使用函数定义打印2D列表的对角线(主对角线)
通过定义函数打印元素,并且满足条件当行元素等于列元素时。
算法
- 步骤1 −定义带有一个参数的函数对角线。
-
步骤2 −然后使用len函数,可以得到对角矩阵的行和列的长度。
-
步骤3 −通过列表推导,使用for循环,可以遍历行元素的列表,另一个for循环可以遍历列元素的列表。
-
步骤4 −打印主对角线元素的条件是行和列元素相等。
-
步骤5 −矩阵元素的列表初始化为值,然后print函数将在定义的列表中返回对角线元素。
示例
#Declaring the function with one argument as mat
def diag(mat):
#To get length using the len function of rows and columns
rows = len(mat)
cols = len(mat)
#To iterate through the row range
for a in range(rows):
# To iterate through the column range
for b in range(cols):
#Condition to check whether the row element is equal to the column element
if a==b:
print(mat[a][b], end="")
print()
#Declaring the input list of elements
mat = [[10, 0, -1],
[0, 20, -2],
[-3, 0, 30]]
#function is called to get the diagonal values
diag(mat)
输出
10
20
30
方法二:使用迭代方法打印二维列表的对角线(次对角线)的Python程序
打印给定列表的对角线,按照次对角线的顺序,其背后的主要条件是从最后一列到第一列,行号等于总行数减去当前元素的位置或索引的所有列。
算法
- 第1步 −定义一个具有一个参数的函数作为矩阵。
-
第2步 −使用len函数获取行和列的长度。
-
第3步 −for循环将迭代遍历行和列元素的范围。
-
第4步 −必须满足的条件是当附加行和列元素等于(n-1)时。
-
第5步 −print函数将在每一新行中返回反对角线元素。
-
第6步 −矩阵在单独的列表数据结构中初始化,并调用函数打印元素。
示例
#defining the function with one argument
def diag(mat):
#To get length using the len() function of rows and columns
rows = len(mat)
cols = len(mat)
#To iterate through the row range
for a in range(rows):
#To iterate through the column range
for b in range(cols):
#checking the condition to return the antidiagonal matrix
if (a == rows - b -1):
print(mat[a][b], end=" ")
print()
#Declaring the input list of elements
mat = [[10, 0, -1],
[0, 20, -2],
[-3, 0, 30]]
#function is called to get the diagonal values
diag(mat)
输出
-1
20
-3
结论
Python通过简单的概念和易于理解操作背后的概念,使过程变得更加简单。所提供的方法使用了done方法来打印主对角线和副对角线上的元素。在二维数组中通过迭代方法可以轻松地完成Python程序来打印对角线元素的任务。