Как заполнить матрицу в Python значениями переменных вместо 0 - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь создать матрицу m на n в Python, которая будет заполнена умножением строки на столбец.Таким образом, myMatrix [0] будет 1, myMatrix [1] будет 2, т. Д.

m = int(input("What width is your matrix? "))
type(m)
n = int(input("What height is your matrix? "))
type(n)

myMatrix = [[0. for x in range(m)] for y in range(n)]

Если я распечатываю свою матрицу, все выглядит хорошо, все значения равны 0, и это правильные размеры.Я заметил, что могу играть с «0».и получить разные значения (например, 1 + 0 поместил бы все 1.0s и т. д.), но я не могу понять, как вместо этого поместить туда переменную.

В идеале я хотел бы сделать что-то, что умножает строку на столбец, но я не могу найти синтаксис для этого.Любая идея или направление?Можете ли вы положить что-нибудь в матрицу создания, где "0"это или вы можете делать только статические целые числа?

1 Ответ

0 голосов
/ 27 ноября 2018

Все 1 - это объект в Python.Таким образом, вы можете поставить что угодно вместо 0:

[[int for x in range(m)] for y in range(n)]       # int class
[[{} for x in range(m)] for y in range(n)]        # empty dictionary
[['hello' for x in range(m)] for y in range(n)]   # string
[[-51.237 for x in range(m)] for y in range(n)]   # float

Также может использоваться любое выражение, которое оценивает объект:

[[x**y for x in range(m)] for y in range(n)]        # x to the power of y
[[x*y for x in range(m)] for y in range(n)]         # x multiplied by y
[[abs(x-y) for x in range(m)] for y in range(n)]    # absolute difference between x and y
[['a'*abs(int(x)) for x in range(m)] for y in range(n)]  # string abs(int(x)) times 

Будьте осторожны с терминологией.Матрица не является встроенной в Python, термин не существует в обычной лексике Python.Вы используете list из list объектов.Матрица (или теперь массив) чаще используется со ссылкой на стороннюю библиотеку под названием NumPy.


1 Ну, почти все: например, if - это ключевое слово, а не объект.Но функции, классы, экземпляры классов являются объектами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...