在 Python 中初始化矩阵
原文:https://www.geeksforgeeks.org/initialize-matrix-in-python/
有时在竞争性编程的世界中,我们需要初始化矩阵,但是我们不希望使用循环以更长的方式来初始化矩阵。我们需要一个简写。这类问题在动态编程领域非常常见。让我们讨论一下实现这一点的某些方法。 方法#1:使用列表理解 列表理解可以被视为执行该特定操作的简写。在列表理解中,我们可以初始化内部列表,然后使用列表理解再次将这个逻辑扩展到每一行。
Python 3
# Python3 code to demonstrate
# initializing matrix
# using list comprehension
# Declaring rows
N = 5
# Declaring columns
M = 4
# using list comprehension
# to initializing matrix
res = [ [ 0 for i in range(M) ] for j in range(N) ]
# printing result
print("The matrix after initializing : " + str(res))
Output
The matrix after initializing : [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
方法 2:使用列表理解+“*”运算符 这个问题也可以使用*运算符来简化,它可以稍微减少完成任务的繁琐方式,并且可以简单地使用乘法运算符将初始化扩展到所有 N 行。
Python 3
# Python3 code to demonstrate
# initializing matrix
# using list comprehension
# and * operator
# Declaring rows
N = 5
# Declaring columns
M = 4
# using list comprehension
# to initializing matrix
res = [ [0 for i in range(M)]] * N
# printing result
print("The matrix after initializing : " + str(res))
Output
The matrix after initializing : [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
方法#3:使用+“*”运算符两次 与上面的示例类似,我们也可以使用“*”运算符初始化列两次。
Python 3
# Python3 code to demonstrate
# initializing matrix
# * operator twice
# By: Pushpak Jalan, Tezpur University
# Declaring rows
N = 5
# Declaring columns
M = 4
# Using * operator twice to initialize matrix
res = [[0] * M] * N
# printing result
print("The matrix after initializing : " + str(res))
Output
The matrix after initializing : [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
版权属于:月萌API www.moonapi.com,转载请注明出处