Python 中二维列表的对角线打印


Python 是一种高级编程语言,也是一种多功能的语言,它最受开发人员的青睐,并且广泛用于借助机器学习和数据科学进行数据分析。它提供的用于处理数据的功能非常强大,在本文中,我们将了解如何对二维列表进行对角线打印。 这是其中一项基本任务,并且可以通过多种方法有效地实现。

打印二维列表的对角线

在开始打印二维列表的对角线之前,我们需要了解对角线是如何表示的。 对角线由元素组成,指的是从左上角到右下角元素的直线上的这些元素。 对角线元素的基本语法如下所示:

语法

[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:使用函数定义打印二维列表的对角线(主对角线)的 Python 程序

通过定义函数并满足行元素等于列元素的条件来打印元素。

算法

  • 步骤 1 - 定义一个带有一个参数的函数 diagonal。

  • 步骤 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

方法 2:使用迭代方法打印二维列表的对角线(次对角线)的 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 通过简单的概念和易于理解操作背后的概念,使流程变得更加简单。 给出的方法使用了打印次对角线和主对角线中元素的方法。 通过二维数组中的迭代方法可以轻松地完成打印对角线元素的 Python 程序。

更新于: 2023年9月4日

475 次浏览

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告