Получение ввода в виде целого числа для списка - PullRequest
0 голосов
/ 24 января 2020

Я пытаюсь, чтобы пользователь ввел вектор, чтобы его можно было сложить, вычесть и т. Д. c. Первая строка - это список ввода, но он хранит все символы в виде строк, включая скобки и запятые. Третья и четвертая строка избавляет от скобок и запятых, оставляя три введенных пользователем числа в виде строк.

v = input('Input integers for a vector "v" ex. [1,2,-7]: ')

aux = v[1:-1]
list = aux.split(',')

for x in list:
    int(x)

print(list[0] + list[1])

for l oop - это моя попытка перебрать список и превратить все числа в целые числа, но он все еще возвращает их в виде строк. Например, если я введу список [3,6,5], программа напечатает 36 в конце вместо предполагаемого 9. Я попытался использовать функцию map, чтобы изменить их, но это возвращало те же значения, что и строки.

Как я могу превратить все элементы списка в целые числа после удаления скобок и запятых?

1 Ответ

0 голосов
/ 24 января 2020

Во-первых, заклинатель int () не приводит переменную к месту, он возвращает приведенное значение, поэтому вам необходимо присвоить его обратно.

Во-вторых, при использовании l oop вида

for x in list:

x не является ссылкой указателя на элемент списка, вместо этого он является переменной со скопированным в него значением элемента списка, поэтому даже если вы это сделали:

for x in list:
    x = int(x)

элементы в списке не будут затронуты. Ваш l oop для преобразования строковых символов в int должен быть (один подход):

for i in range(len(list)):
    list[i] = int(list[i])
...