Создать массив X * Y, используя входные данные пользователя - PullRequest
0 голосов
/ 21 ноября 2019

Я довольно новичок в python и борюсь с основами.

Допустим, пользователь вводит 221234 в качестве ввода, которое я беру, используя input() Первые 2 числа в этом входе, 2 и 2будут приняты как x и y для массива. Оставшиеся 1234 будут элементами массива.

Мне удалось использовать pop(), чтобы получить первое и второе значение и сохранить его в x и y.

x=list(value).pop(0)

y=list(value).pop(1)

Использование нарезкиМне также удалось получить элементы

elem=value[2:]

Теперь, как мне создать массив размером x и y с элементами 1234?

Я знаю, например: arrsize= np.zeros((x,y)) создаст мне массив из 2 строк и столбцов. Но тогда как я передам элементы в этот объявленный массив?

Спасибо, Арджун

Ответы [ 2 ]

3 голосов
/ 21 ноября 2019

Для ввода одной цифры вы можете просто распаковать символы / цифры в строке, так как итерация по строке даст вам одиночные символы:

import numpy as np

x, y, *v = map(int, input())
a = np.array(v).reshape(x,y)

В качестве краткого пояснения, используя x, y, *v в левой части задания будет распакована правая сторона, так что первый элемент присваивается x, второй элемент y, а остальные (обозначается *) к v как list.

Если вы когда-нибудь решите использовать разделители между числами вашего ввода, замените map(int, input()) на map(int, input().split(sep)), где sep - ваш разделитель.

0 голосов
/ 21 ноября 2019

Если ваши входные данные всегда состоят из одной цифры, попробуйте следующее:

inp = input('Enter dim and val: ')
lst = list(inp)
x,y = lst[:2]
arr = np.array(lst[2:], dtype = int).reshape(int(x),int(y))
print(arr)

Выход:

Enter dim and val: 221234
[[1 2]
 [3 4]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...