Векторный ввод от пользователя - python - PullRequest
0 голосов
/ 02 марта 2019

Я пытаюсь получить вектор, используя функцию ввода для выполнения математической операции.Ниже приведен код, который я использую.

Любые указатели помогут

Спасибо, Прашант

vector1=input()

(1,2,3),(4,5,6),(7,8,9)

vector1=np.array(vectors.split(','),dtype=np.int16)


Error:
line 3267, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-109-6cf21e5e043d>", line 1, in <module>
    vector1=np.array(vectors.split(','),dtype=np.int16)
ValueError: invalid literal for int() with base 10: "('(1"

1 Ответ

0 голосов
/ 03 марта 2019

С помощью регулярных выражений вы можете сделать следующее:

import numpy as np
import re

user_input = "(1,2,3),(4,5,6),(7,8,9)"

# Convert user-provided string to nested list
x = re.findall(r"\((\d+(?:,\d+)*)\)", user_input)
x = [part.split(',') for part in x]

# Create 2D numpy array from nested list
arr = np.array(x, dtype=int)

print(arr)
# Output:
# [[1 2 3]
#  [4 5 6]
#  [7 8 9]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...