TransWikia.com

Recuperar dimensões de matriz em Python

Stack Overflow em Português Asked by Monica da Silva Vasconcelos on December 20, 2021

Alguém pode me ajudar a escrever a função “dimensoes(matriz)” que receba uma matriz como parâmetro e imprima as dimensões da matriz recebida, no formato iXj?

def crie_matriz(n_linhas, n_colunas, valor):

    matriz = []

    for i in range(n_linhas):
        linha = []

        for j in range(n_colunas):
            linha.append(valor)
            matriz.append(linha)
    for n in matriz:
        print(''.join(map(str,matriz)))
    return matriz

a = crie_matriz(2,3)

print(a)

O código acima que fiz imprime a saída, mas a questão pede para imprimir a dimensão conforme o exemplo abaixo:

minha_matriz = [[1], [2], [3]]
dimensoes(minha_matriz)
3X1

minha_matriz = [[1, 2, 3], [4, 5, 6]]
dimensoes(minha_matriz)
2X3

4 Answers

Olha eu fiz desta forma, não é a melhor, porém, funcional:`

def dimensoes(matriz):
colunas = 0
linhas = 0
qtd_colunas = 0
a = ''
for i in range(len(matriz)):
    linhas = linhas + 1 # soma a qtd de linhas
    colunas = matriz[i] # Armazena os itens de cada linha
for w in colunas: # Ira interar a qtd de itens da ->ÚLTIMA<- lista dentro da matriz.
    qtd_colunas = qtd_colunas + 1
a = print('{}X{}'.format(linhas, qtd_colunas))

return a

Answered by Douglas Rodrigues on December 20, 2021

pode usar a biblioteca numpy, que ja vem com o método de retornar as dimensões da matriz/array

ex:

import numpy as np

np.array([[0, 1, 2],
          [3, 4, 5]]).shape

imprime (2,3)

que quando armazenado em uma variavel vc sempre pode chamar .shape ex:

import numpy as np

x = np.array([[0, 1, 2],
              [3, 4, 5]])

print(x.shape)

ainda se quiser pegar a transposta, ex:

print(x.T)

imprime:

array([[0, 3],
       [1, 4],
       [2, 5]])

boa diversão!

Answered by rodgomesc on December 20, 2021

O código ficaria assim:

def dimensoes(matriz):
tam_matriz = (len(matriz), len(matriz[0]))
print('{}X{}'.format(tam_matriz[0], tam_matriz[1]))

Se a questão pede para imprimir, tem que usar o comando 'print', se pede para retornar ou devolver, use o comando 'return'

Answered by Eduardo Oliveira on December 20, 2021

Podes fazer o seguinte:

tam_matriz = (len(minha_matriz), len(minha_matriz[0]))

Isto vai dar um tuple, neste caso: (2, 3)

Podes imprimir assim:

print('{} x {}'.format(tam_matriz[0], tam_matriz[1]))

Ou com uma função:

def dimensoes(m):
    return (len(m), len(m[0]))

print(dimensoes(minha_matriz)) # (2, 3)

Answered by Miguel on December 20, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP