Как преобразовать целые числа в списке в int ()? - PullRequest
1 голос
/ 20 мая 2019

Я делаю функцию, которая оценивает математику в строке.Сначала он берет строку, а затем преобразует ее в список.

Я попытался преобразовать весь массив в массив целых чисел, но я столкнулся с ошибкой, когда массив выглядит так: ["hello",1,"*",2] как всене число.

Я хочу преобразовать только целые числа в массиве ["1","2","hello","3"] в целые числа, поэтому массив становится [1,2,"hello",3]

Таким образом, я могу делать математические вычисления нацелые числа, а не обрабатывать их как строки, как в настоящее время, когда я делаю это:

1 + 2

Я получаю 12 в качестве вывода.Я хочу 3 в качестве вывода.

1 Ответ

1 голос
/ 20 мая 2019

Вы можете использовать список с str.isdigit() и int():

ls = ["1", "2", "hello", "3"]
new_ls = [int(n) if n.isdigit() else n for n in ls]
print(new_ls)

Выход:

[1, 2, 'hello', 3]

Вы также можете добавить str.lstrip(), чтобы он работал с отрицательными числами:

ls = ["1", "-2", "hello", "-3"]
new_ls = [int(n) if n.lstrip('-').isdigit() else n for n in ls]
print(new_ls)

Выход:

[1, -2, 'hello', -3]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...