Mal*_*ali 2 python list matrix python-3.x nested-for-loop
我正在编写一个函数来确定矩阵的元素是否复杂。我希望该函数返回 aTrue或 a False。我有这段代码,但它似乎没有按预期工作:
def confirm_matrix(M):
row_1_length = len(M[0])
if len(M)>0:
for row in M:
if type(row) is not list or tuple:
return False
for row in M[1:]:
if len(row)!= row_1_length:
return False
for row in M:
for element in row:
try:
isinstance(element, complex) == True
return True
except:
return False
confirm_matrix([[1j,1j],[2j,2j]])
Run Code Online (Sandbox Code Playgroud)
我期望得到 aTrue但这给出了False. 我可以在我的代码中改进什么?
这里的逻辑太过分了。如果您的矩阵始终是二维的,您可以迭代行和列并将生成器传递给any:
>>> M = [[1j,1j],[2j,2j]]
>>> any(isinstance(x, complex) for row in M for x in row)
True
>>> M = [[1,1],[2,2]]
>>> any(isinstance(x, complex) for row in M for x in row)
False
Run Code Online (Sandbox Code Playgroud)
如果您使用 numpy,np.iscomplex()则可以这样:
>>> a = np.array([[1+1j, 1+0j], [4.5, 3]])
>>> np.iscomplex(a).any()
True
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
508 次 |
| 最近记录: |